Notes app source code android

What will learn

splash screen

fetch data from firebase

alert dialog

progressbar

Drawer menu in android

open website,open youtube share app in social media using intent.

how to search data from firebase and show data in recyclerview.

PdfViewer in android

1) splash screen

package com.example.noteapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

public class splashscreen extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);


Thread thread = new Thread(){
@Override
public void run() {
try{
sleep(5 * 1000);
Intent intent = new Intent(splashscreen.this,MainActivity.class);
startActivity(intent);
finish();
}catch(Exception e){
Toast.makeText(splashscreen.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
super.run();
}
};
thread.start();


}
}

2) inside Mainpage 

package com.example.noteapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.GravityCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.SearchView;
import android.widget.Toast;

import com.example.noteapp.Adapters.BookAdapters;
import com.example.noteapp.databinding.ActivityMainBinding;
import com.example.noteapp.models.BookModels;
import com.google.android.material.navigation.NavigationView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {
private FirebaseDatabase firebaseDatabase;
private DatabaseReference databaseReference;
private ArrayList<BookModels>list;
private ProgressDialog progressDialog;
private ActionBarDrawerToggle toggle;
private ActivityMainBinding binding;
private BookAdapters adapters;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference().child("books");
// getSupportActionBar().hide();
// setSupportActionBar(binding.toolbar);
// binding.toolbar.setTitle("Note App");

binding.edittext.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void afterTextChanged(Editable editable) {
FilterList(editable.toString());
}
});


toggle = new ActionBarDrawerToggle(this,binding.drawer,binding.toolbar,R.string.start,R.string.close);
binding.drawer.addDrawerListener(toggle);
toggle.syncState();

binding.navigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
binding.drawer.closeDrawer(GravityCompat.START);
switch(item.getItemId()){
case R.id.share:
shareapp();
break;
case R.id.video:
openwebsite("https://www.youtube.com/channel/UCF5oO43y67XYOfJRiPif1rw/videos");
break;
case R.id.website:
openwebsite("https://coderkharal.blogspot.com/");
break;
case R.id.developer:
Intent intent = new Intent(MainActivity.this,DeveloperActivity.class);
startActivity(intent);
break;
case R.id.exit:
finish();
break;
}
return false;
}
});


progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Loading");
progressDialog.setMessage("Wait While Loading...");
progressDialog.show();

list = new ArrayList<>();

adapters = new BookAdapters(list,getApplicationContext());
binding.BookRecyclerview.setAdapter(adapters);

databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
progressDialog.dismiss();
for (DataSnapshot snapshot1:snapshot.getChildren()){
BookModels models = snapshot1.getValue(BookModels.class);
list.add(models);
}

adapters.notifyDataSetChanged();
}

@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(MainActivity.this,error.getMessage(), Toast.LENGTH_SHORT).show();
}
});

StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
binding.BookRecyclerview.setLayoutManager(staggeredGridLayoutManager);

// GridLayoutManager gridLayoutManager = new GridLayoutManager(this,2);
// binding.BookRecyclerview.setLayoutManager(gridLayoutManager);



// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.ic_launcher_background,"Hello world"));
// list.add(new BookModels(R.drawable.ic_launcher_background,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.course,"Hello world"));
// list.add(new BookModels(R.drawable.ic_launcher_background,"Hello world"));
}

@Override
public void onBackPressed() {
if(binding.drawer.isDrawerOpen(GravityCompat.START)){
binding.drawer.closeDrawer(GravityCompat.START);
}else{
super.onBackPressed();
}
}

private void openwebsite(String url){
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
}

private void FilterList(String s) {
ArrayList<BookModels> filterList = new ArrayList<>();
for(BookModels item:list){
if(item.getTitle().toLowerCase().contains(s.toLowerCase())){
filterList.add(item);
}
}
if(filterList.isEmpty()){
Toast.makeText(this, "No data found", Toast.LENGTH_SHORT).show();
}else{
adapters.setFilterList(filterList);
}
}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.share:
shareapp();
break;
case R.id.exit:
finish();
break;
}
return super.onOptionsItemSelected(item);
}

private void shareapp(){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT,"our Note app you can learn different course from these app");
intent.setType("text/plain");
startActivity(intent);
}

private void showalert(String title,String subtitle){
new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(subtitle)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).show();
}


}


Model page
package com.example.crudoperation;

public class courseModels {
String title,desc,imageurl;

public courseModels(String title, String desc, String imageurl) {
this.title = title;
this.desc = desc;
this.imageurl = imageurl;
}

public courseModels(){}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getDesc() {
return desc;
}

public void setDesc(String desc) {
this.desc = desc;
}

public String getImageurl() {
return imageurl;
}

public void setImageurl(String imageurl) {
this.imageurl = imageurl;
}
}

Adapter
package com.example.noteapp.Adapters;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.noteapp.NoteDetails;
import com.example.noteapp.R;
import com.example.noteapp.models.BookModels;
import com.squareup.picasso.Picasso;

import java.util.ArrayList;

public class BookAdapters extends RecyclerView.Adapter<BookAdapters.ViewHolder>{
ArrayList<BookModels>list;
Context context;

public BookAdapters(ArrayList<BookModels> list, Context context) {
this.list = list;
this.context = context;
}


@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample_note,parent,false);
return new ViewHolder(view);
}

public void setFilterList(ArrayList<BookModels> FilterList){
list = FilterList;
notifyDataSetChanged();
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final BookModels models = list.get(position);
holder.text.setText(models.getTitle());
// holder.image.setImageResource(models.getImage());
Picasso.get().load(models.getImage()).into(holder.image);

holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Toast.makeText(context, "click image", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context, NoteDetails.class);
intent.putExtra("pdfurl",models.getUrl());
intent.putExtra("toolbartitle",models.getTitle());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
});
setAnimation(holder.itemView);
}

public void setAnimation(View v){
Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_out);
v.setAnimation(animation);
}

@Override
public int getItemCount() {
return list.size();
}

public class ViewHolder extends RecyclerView.ViewHolder{
ImageView image;
TextView text;
public ViewHolder(@NonNull View itemView) {
super(itemView);
text = itemView.findViewById(R.id.coursetitle);
image = itemView.findViewById(R.id.courseimg);
}
}
}
NoteDetails
package com.example.noteapp;

import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.TextView;

import com.example.noteapp.databinding.ActivityNoteDetailsBinding;
import com.github.barteksc.pdfviewer.PDFView;

import es.voghdev.pdfviewpager.library.RemotePDFViewPager;
import es.voghdev.pdfviewpager.library.adapter.PDFPagerAdapter;
import es.voghdev.pdfviewpager.library.remote.DownloadFile;

public class NoteDetails extends AppCompatActivity implements DownloadFile.Listener{
PDFView pdfView;
TextView text;
private ActivityNoteDetailsBinding binding;
private RemotePDFViewPager remotePDFViewPager;
private ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityNoteDetailsBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Loading");
progressDialog.setMessage("Wait While Loading");
progressDialog.show();

String toolbartitle = getIntent().getStringExtra("toolbartitle");
getSupportActionBar().setTitle(toolbartitle);

String url = getIntent().getStringExtra("pdfurl");

remotePDFViewPager =
new RemotePDFViewPager(NoteDetails.this, url, this);

}


@Override
public void onSuccess(String url, String destinationPath) {
progressDialog.dismiss();
PDFPagerAdapter adapter = new PDFPagerAdapter(this, extractFileNameFromURL(url));
remotePDFViewPager.setAdapter(adapter);
setContentView(remotePDFViewPager);
}

public static String extractFileNameFromURL(String url){
return url.substring(url.lastIndexOf('/')+1);
}

@Override
public void onFailure(Exception e) {

}

@Override
public void onProgressUpdate(int progress, int total) {

}

@Override
public void onPointerCaptureChanged(boolean hasCapture) {
super.onPointerCaptureChanged(hasCapture);
}
}






Comments

Popular posts from this blog

Media Player in android

Fetch data from Api in android using Volley library

GridView in android