Guest User

Untitled

a guest
Jul 4th, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.11 KB | None | 0 0
  1. package com.example.mayankaggarwal.gdg_recruitments2017;
  2.  
  3. import android.content.DialogInterface;
  4. import android.os.Bundle;
  5. import android.support.design.widget.FloatingActionButton;
  6. import android.support.v7.app.AlertDialog;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.support.v7.widget.LinearLayoutManager;
  9. import android.support.v7.widget.RecyclerView;
  10. import android.support.v7.widget.Toolbar;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.Menu;
  14. import android.view.MenuItem;
  15. import android.widget.EditText;
  16. import android.widget.Toast;
  17. import com.example.mayankaggarwal.gdg_recruitments2017.model.User;
  18.  
  19. import java.util.ArrayList;
  20.  
  21. import io.realm.Realm;
  22. import io.realm.RealmConfiguration;
  23. import io.realm.RealmResults;
  24.  
  25. public class MainActivity extends AppCompatActivity {
  26.  
  27.  
  28.     private UsersAdapter adapter;
  29.     private Realm realm;
  30.     private LayoutInflater inflater;
  31.     private FloatingActionButton fab;
  32.     private RecyclerView recycler;
  33.  
  34.     @Override
  35.     protected void onCreate(Bundle savedInstanceState) {
  36.         super.onCreate(savedInstanceState);
  37.         setContentView(R.layout.activity_main);
  38.  
  39.         fab = (FloatingActionButton) findViewById(R.id.fab);
  40.         recycler = (RecyclerView) findViewById(R.id.recycler);
  41.  
  42.         RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this)
  43.                 .name(Realm.DEFAULT_REALM_NAME)
  44.                 .schemaVersion(0)
  45.                 .deleteRealmIfMigrationNeeded()
  46.                 .build();
  47.         Realm.setDefaultConfiguration(realmConfiguration);
  48.  
  49.  
  50.         //get realm instance
  51.         this.realm = RealmController.with(this).getRealm();
  52.  
  53.         //set toolbar
  54.         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  55.         setSupportActionBar(toolbar);
  56.  
  57.         setupRecycler();
  58.  
  59.         if (!Prefs.getPreLoad(this)) {
  60.             setRealmData();
  61.         }
  62.  
  63.         // refresh the realm instance
  64.  
  65.         RealmController.with(this).refresh();
  66.  
  67.  
  68.         // changes will be reflected automatically
  69.         setRealmAdapter(RealmController.with(this).getUsers());
  70.  
  71.         Toast.makeText(this, "Press card item for edit, long press to remove item", Toast.LENGTH_LONG).show();
  72.  
  73.         fab.setOnClickListener(new View.OnClickListener() {
  74.             @Override
  75.             public void onClick(View v) {
  76.  
  77.                 inflater = MainActivity.this.getLayoutInflater();
  78.                 View content = inflater.inflate(R.layout.edit_item, null);
  79.                 final EditText editWebsite = (EditText) content.findViewById(R.id.website);
  80.                 final EditText editUsername = (EditText) content.findViewById(R.id.username);
  81.                 final EditText editPassword = (EditText) content.findViewById(R.id.password);
  82.  
  83.                 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
  84.                 builder.setView(content)
  85.                         .setTitle("Add Website Details")
  86.                         .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
  87.                             @Override
  88.                             public void onClick(DialogInterface dialog, int which) {
  89.  
  90.                                 User user = new User();
  91.                                 user.setId(RealmController.getInstance().getUsers().size()+1);
  92.                                 user.setWebsite(editWebsite.getText().toString());
  93.                                 user.setUsername(editUsername.getText().toString());
  94.                                 user.setPassword(editPassword.getText().toString());
  95.  
  96.                                 if (editWebsite.getText() == null || editWebsite.getText().toString().equals("") || editWebsite.getText().toString().equals(" ")) {
  97.                                     Toast.makeText(MainActivity.this, "Entry not saved, missing title", Toast.LENGTH_LONG).show();
  98.                                 } else {
  99.                                     // Persist your data easily
  100.                                     realm.beginTransaction();
  101.                                     realm.copyToRealm(user);
  102.                                     realm.commitTransaction();
  103.  
  104.                                     adapter.notifyDataSetChanged();
  105.  
  106.                                     // scroll the recycler view to bottom
  107.                                     recycler.scrollToPosition(RealmController.getInstance().getUsers().size() - 1);
  108.                                 }
  109.                             }
  110.                         })
  111.                         .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
  112.  
  113.                             @Override
  114.                             public void onClick(DialogInterface dialog, int which) {
  115.                                 dialog.dismiss();
  116.                             }
  117.                         });
  118.                 AlertDialog dialog = builder.create();
  119.                 dialog.show();
  120.             }
  121.         });
  122.     }
  123.  
  124.     public void setRealmAdapter(RealmResults<User> users) {
  125.  
  126.         RealmUsersAdapter realmAdapter = new RealmUsersAdapter(this.getApplicationContext(), users, true);
  127.         adapter.setRealmAdapter(realmAdapter);
  128.         adapter.notifyDataSetChanged();
  129.     }
  130.  
  131.     private void setupRecycler() {
  132.         recycler.setHasFixedSize(true);
  133.  
  134.         final LinearLayoutManager layoutManager = new LinearLayoutManager(this);
  135.         layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
  136.         recycler.setLayoutManager(layoutManager);
  137.  
  138.         adapter = new UsersAdapter(this);
  139.         recycler.setAdapter(adapter);
  140.     }
  141.  
  142.     private void setRealmData() {
  143.  
  144.         ArrayList<User> users = new ArrayList<>();
  145.  
  146.         User user = new User();
  147.         user.setId(1);
  148.         user.setWebsite("Contact");
  149.         user.setUsername("first name:");
  150.         user.setPassword("Mayank_Aggarwal");
  151.         users.add(user);
  152.  
  153.         user = new User();
  154.         user.setId(3);
  155.         user.setWebsite("Facebook");
  156.         user.setPassword("15BCE0751");
  157.         user.setUsername("gdgvit@faceuser.com");
  158.         users.add(user);
  159.  
  160.         user = new User();
  161.         user.setId(2);
  162.         user.setWebsite("N");
  163.         user.setUsername("mayankagg9722@gmail.com");
  164.         user.setPassword("pqrs");
  165.         users.add(user);
  166.  
  167.         user = new User();
  168.         user.setId(4);
  169.         user.setWebsite("Year");
  170.         user.setUsername("New")
  171.         users.add(user);
  172.  
  173.         users.add(user);
  174.         user = new User();
  175.         user.setId(5);
  176.         user.setWebsite("Register number");
  177.         user.setUsername("Roll number");
  178.         user.setUsername("section");
  179.         user.setUsername("class");
  180.  
  181.  
  182.         for (User u : users) {
  183.             // Persist your data easily
  184.             realm.beginTransaction();
  185.             realm.copyToRealm(u);
  186.             realm.commitTransaction();
  187.         }
  188.  
  189.         Prefs.setPreLoad(true, this);
  190.  
  191.     }
  192.  
  193.     @Override
  194.     public boolean onCreateOptionsMenu(Menu menu) {
  195.  
  196.         getMenuInflater().inflate(R.menu.menu_main, menu);
  197.         return true;
  198.     }
  199.  
  200.  
  201. }
Add Comment
Please, Sign In to add comment