GallaryFragment

 Create a java class Named "GallaryAdapter" :

public class GallaryAdapter extends RecyclerView.Adapter<GallaryAdapter.GallaryViewHolder>{

private Context context;
private ArrayList<Object> videoList;

public GallaryAdapter(Context context, ArrayList<Object> videoList) {
this.context = context;
this.videoList = videoList;
}


@NonNull
@Override
public GallaryViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new GallaryViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false));

}

@Override
public void onBindViewHolder(@NonNull GallaryViewHolder holder, int position) {


final ImageModel file=(ImageModel)videoList.get(position);

holder.vDownload.setVisibility(View.GONE);
holder.vLine.setVisibility(View.GONE);

Glide.with(context)
.load(file.getUri().toString())
.centerCrop()
.placeholder(R.drawable.ic_baseline_image_24)
.into(holder.vView);

if (file.getUri().toString().endsWith(".mp4")){

holder.vPlay.setVisibility(View.VISIBLE);

}
if (file.getUri().toString().endsWith(".jpg")){

holder.vPlay.setVisibility(View.GONE);

}

holder.vShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

File localFile=new File(file.getPath().toString());



Uri imageUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName()+".fileprovider",localFile);
Intent shareIntent= ShareCompat.IntentBuilder.from((Activity) context)
.setStream(imageUri)
.setType("*/*")
.setChooserTitle("WS Downloader")
.getIntent();

if (shareIntent.resolveActivity(context.getPackageManager())!= null){
context.startActivity(shareIntent);
}
}
});

holder.vPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MKPlayerActivity.configPlayer((Activity) context).play(file.getPath().toString());

}
});


}



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

public class GallaryViewHolder extends RecyclerView.ViewHolder{

ImageView vView,vShare,vDownload,vPlay,vLine;

public GallaryViewHolder(@NonNull View itemView) {
super(itemView);
vView=itemView.findViewById(R.id.vView);
vShare=itemView.findViewById(R.id.vShare);
vDownload=itemView.findViewById(R.id.vDownload);
vPlay=itemView.findViewById(R.id.vPlay);
vLine=itemView.findViewById(R.id.vLine);
}
}


}

fragment_gallary.xml :
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/gallerySwipe"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".GallaryFragment">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/galleryRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#F1EBEB"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="vertical" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
GallaryFragment.java :
public class GallaryFragment extends Fragment {

private SwipeRefreshLayout swipeRefreshLayout;
private RecyclerView recyclerView;
private GallaryAdapter gallaryAdapter;
private File[] files;
private ArrayList<Object> filesList= new ArrayList<>();


public GallaryFragment() {
// Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_gallary, container, false);
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
init(view);
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeRefreshLayout.setRefreshing(true);
setUpRefrashLayout();
(
new Handler()).postDelayed(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(false);
}
},2000);

}
});

Dexter.withContext(getContext()).withPermissions(Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withListener(new MultiplePermissionsListener() {
@Override
public void onPermissionsChecked(MultiplePermissionsReport multiplePermissionsReport) {
setUpRefrashLayout();
}

@Override
public void onPermissionRationaleShouldBeShown(List<PermissionRequest> list, PermissionToken permissionToken) {
permissionToken.continuePermissionRequest();
}
}).check();
}

private void setUpRefrashLayout() {
filesList.clear();
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
gallaryAdapter= new GallaryAdapter(getContext(),getData());
recyclerView.setAdapter(gallaryAdapter);
gallaryAdapter.notifyDataSetChanged();
}

private ArrayList<Object> getData() {
ImageModel f;
String targetPath = Environment.getExternalStorageDirectory().getAbsolutePath()+Constant.SAVE_FOLDER_NAME;
File targetDirectory =new File(targetPath);
files = targetDirectory.listFiles();

for (int i=0;i<files.length;i++){

File file= files[i];
f=new ImageModel();
f.setUri(Uri.fromFile(file));
f.setPath(files[i].getAbsolutePath());
f.setFileName(file.getName());

if (!f.getUri().toString().endsWith(".nomedia")){
filesList.add(f);

}

}
return filesList;
}

private void init(View view) {
swipeRefreshLayout=view.findViewById(R.id.gallerySwipe);
recyclerView=view.findViewById(R.id.galleryRecyclerView);

}

}









Post a Comment

0Comments
Post a Comment (0)