Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Activity_Main extends AppCompatActivity implements NetworkMainAdapter.ContactsAdapterListener {
- private static final String TAG = MainActivity.class.getSimpleName();
- private RecyclerView recyclerView;
- private List<NetworkMAIN> contactList;
- private NetworkMainAdapter mAdapter;
- private SearchView searchView;
- // url to fetch contacts json
- private static final String URL = "http://site.ru/json.php";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Toolbar toolbar = findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- // toolbar fancy stuff
- //getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- getSupportActionBar().setTitle(R.string.toolbar_title);
- recyclerView = findViewById(R.id.recycler_view);
- contactList = new ArrayList<>();
- mAdapter = new NetworkMainAdapter(this, contactList, this);
- // white background notification bar
- whiteNotificationBar(recyclerView);
- RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
- recyclerView.setLayoutManager(mLayoutManager);
- recyclerView.setItemAnimator(new DefaultItemAnimator());
- recyclerView.addItemDecoration(new MyDividerItemDecoration(this, DividerItemDecoration.VERTICAL, 36));
- recyclerView.setAdapter(mAdapter);
- fetchContacts();
- }
- /**
- * fetches json by making http calls
- */
- private void fetchContacts() {
- JsonArrayRequest request = new JsonArrayRequest(URL,
- new Response.Listener<JSONArray>() {
- @Override
- public void onResponse(JSONArray response) {
- if (response == null) {
- Toast.makeText(getApplicationContext(), "Couldn't fetch the contacts! Pleas try again.", Toast.LENGTH_LONG).show();
- return;
- }
- List<NetworkMAIN> items = new Gson().fromJson(response.toString(), new TypeToken<List<NetworkMAIN>>() {
- }.getType());
- // adding contacts to contacts list
- contactList.clear();
- contactList.addAll(items);
- // refreshing recycler view
- mAdapter.notifyDataSetChanged();
- }
- }, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- // error in getting json
- Log.e(TAG, "Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(), "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show();
- }
- });
- MyApplication.getInstance().addToRequestQueue(request);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.search, menu);
- // Associate searchable configuration with the SearchView
- SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
- searchView = (SearchView) menu.findItem(R.id.action_search)
- .getActionView();
- searchView.setSearchableInfo(searchManager
- .getSearchableInfo(getComponentName()));
- searchView.setMaxWidth(Integer.MAX_VALUE);
- // listening to search query text change
- searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String query) {
- // filter recycler view when query submitted
- mAdapter.getFilter().filter(query);
- return false;
- }
- @Override
- public boolean onQueryTextChange(String query) {
- // filter recycler view when text is changed
- mAdapter.getFilter().filter(query);
- return false;
- }
- });
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- //noinspection SimplifiableIfStatement
- if (id == R.id.action_search) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- private void whiteNotificationBar(View view) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- int flags = view.getSystemUiVisibility();
- flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
- view.setSystemUiVisibility(flags);
- getWindow().setStatusBarColor(Color.WHITE);
- }
- }
- @Override
- public void onContactSelected(NetworkMAIN contact) {
- //Toast.makeText(getApplicationContext(), "Selected: " + contact.getLocation() + ", " + contact.getMain(), Toast.LENGTH_LONG).show();
- }
- }
- <?php
- session_start();
- echo isset($_SESSION['login']);
- if(isset($_SESSION['login'])) {
- header('LOCATION:index.php'); die();
- }
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv='content-type' content='text/html;charset=utf-8' />
- <title>Login</title>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
- </head>
- <body>
- <div class="container">
- <h3 class="text-center">Login</h3>
- <?php
- if(isset($_POST['submit'])){
- $username = $_POST['username']; $password = $_POST['password'];
- if($username === 'admin' && $password === 'admin'){
- $_SESSION['login'] = true; header('LOCATION:data.php'); die();
- } {
- echo "<div class='alert alert-danger'>Username and Password do not match.</div>";
- }
- }
- ?>
- <form action="" method="post">
- <div class="form-group">
- <label for="username">Username:</label>
- <input type="text" class="form-control" id="username" name="username" required>
- </div>
- <div class="form-group">
- <label for="pwd">Password:</label>
- <input type="password" class="form-control" id="pwd" name="password" required>
- </div>
- <button type="submit" name="submit" class="btn btn-default">Login</button>
- </form>
- </div>
- </body>
- </html>
Add Comment
Please, Sign In to add comment