Advertisement
aidul23

nnn

Sep 7th, 2021
1,158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.54 KB | None | 0 0
  1. package com.example.wallpep;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.annotation.Nullable;
  5. import androidx.appcompat.app.AppCompatActivity;
  6. import androidx.appcompat.widget.Toolbar;
  7.  
  8. import android.Manifest;
  9. import android.annotation.SuppressLint;
  10. import android.app.ProgressDialog;
  11. import android.content.Intent;
  12. import android.os.Bundle;
  13. import android.os.Environment;
  14. import android.util.Log;
  15. import android.view.View;
  16. import android.webkit.URLUtil;
  17. import android.widget.ImageView;
  18. import android.widget.TextView;
  19. import android.widget.Toast;
  20.  
  21. import com.bumptech.glide.Glide;
  22. import com.downloader.Error;
  23. import com.downloader.OnCancelListener;
  24. import com.downloader.OnDownloadListener;
  25. import com.downloader.OnPauseListener;
  26. import com.downloader.OnProgressListener;
  27. import com.downloader.OnStartOrResumeListener;
  28. import com.downloader.PRDownloader;
  29. import com.downloader.Progress;
  30. import com.google.android.material.floatingactionbutton.FloatingActionButton;
  31. import com.karumi.dexter.Dexter;
  32. import com.karumi.dexter.MultiplePermissionsReport;
  33. import com.karumi.dexter.PermissionToken;
  34. import com.karumi.dexter.listener.PermissionRequest;
  35. import com.karumi.dexter.listener.multi.MultiplePermissionsListener;
  36.  
  37. import java.io.File;
  38. import java.io.FileOutputStream;
  39. import java.io.IOException;
  40. import java.io.OutputStream;
  41. import java.text.SimpleDateFormat;
  42. import java.util.ArrayList;
  43. import java.util.List;
  44. import java.util.Locale;
  45.  
  46. public class GalleryActivity extends AppCompatActivity {
  47.  
  48.     FloatingActionButton downloadButton, likeButton;
  49.     TextView imageDescription;
  50.     ImageModel imageModel;
  51.     String imageUrl;
  52.     private static final String TAG = "GalleryActivity";
  53.  
  54.     @Override
  55.     protected void onCreate(Bundle savedInstanceState) {
  56.         super.onCreate(savedInstanceState);
  57.         setContentView(R.layout.activity_gallery);
  58.  
  59.         downloadButton = findViewById(R.id.download_button_id);
  60.         likeButton = findViewById(R.id.like_button_id);
  61.         imageDescription = findViewById(R.id.image_description);
  62.  
  63.         Intent intent = getIntent();
  64.         imageModel = intent.getParcelableExtra("imageModel");
  65.  
  66.         imageDescription.setText(imageModel.getImageDescription());
  67.  
  68.  
  69.         Toolbar toolbar = findViewById(R.id.toolbar_id);
  70.         setSupportActionBar(toolbar);
  71.         if (getSupportActionBar() != null) {
  72.             toolbar.setTitle(imageModel.getImageName());
  73.             getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  74.             getSupportActionBar().setDisplayShowHomeEnabled(true);
  75.         }
  76.         toolbar.setNavigationOnClickListener(new View.OnClickListener() {
  77.             @Override
  78.             public void onClick(View view) {
  79.                 onBackPressed();
  80.             }
  81.         });
  82.  
  83.         getIncomingIntent();
  84.  
  85.         PRDownloader.initialize(getApplicationContext());
  86.  
  87.         downloadButton.setOnClickListener(new View.OnClickListener() {
  88.             @Override
  89.             public void onClick(View view) {
  90.                 Log.d(TAG, "onClick: ");
  91.                 checkPermission();
  92.             }
  93.         });
  94.     }
  95.  
  96.  
  97.     private void getIncomingIntent() {
  98.         if (imageModel.getImageUrl() != null) {
  99.             String imageUrl = imageModel.getImageUrl();
  100.             setImage(imageUrl);
  101.         }
  102.     }
  103.  
  104.     private void setImage(String imageUrl) {
  105.         ImageView imageView = findViewById(R.id.image);
  106.         Glide.with(this).asDrawable().load(imageUrl).into(imageView);
  107.     }
  108.  
  109.     private void checkPermission() {
  110.         Log.d(TAG, "checkPermission: ");
  111.         Dexter.withContext(GalleryActivity.this)
  112.                 .withPermissions(
  113.                         Manifest.permission.READ_EXTERNAL_STORAGE,
  114.                         Manifest.permission.WRITE_EXTERNAL_STORAGE
  115.                 ).withListener(new MultiplePermissionsListener() {
  116.             @Override public void onPermissionsChecked(MultiplePermissionsReport report) {
  117.                 if(report.areAllPermissionsGranted()) {
  118.                     downloadImage();
  119.                 } else {
  120.                     Toast.makeText(GalleryActivity.this, "Please allow all permission!", Toast.LENGTH_SHORT).show();
  121.                 }
  122.             }
  123.             @Override public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
  124.  
  125.             }
  126.         })
  127.                 .onSameThread()
  128.                 .check();
  129.     }
  130.  
  131.     private void downloadImage() {
  132.         ProgressDialog progressDialog = new ProgressDialog(this);
  133.         progressDialog.setMessage("Downloading...");
  134.         progressDialog.setCancelable(false);
  135.         progressDialog.show();
  136.  
  137.  
  138.         if (imageModel.getImageUrl() != null) {
  139.             imageUrl = imageModel.getImageUrl();
  140.             setImage(imageUrl);
  141.         }
  142.  
  143.         File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
  144.         PRDownloader.download(imageUrl, file.getPath(), URLUtil.guessFileName(imageUrl,null,null))
  145.                 .build()
  146.                 .setOnStartOrResumeListener(new OnStartOrResumeListener() {
  147.                     @Override
  148.                     public void onStartOrResume() {
  149.  
  150.                     }
  151.                 })
  152.                 .setOnPauseListener(new OnPauseListener() {
  153.                     @Override
  154.                     public void onPause() {
  155.  
  156.                     }
  157.                 })
  158.                 .setOnCancelListener(new OnCancelListener() {
  159.                     @Override
  160.                     public void onCancel() {
  161.  
  162.                     }
  163.                 })
  164.                 .setOnProgressListener(new OnProgressListener() {
  165.                     @Override
  166.                     public void onProgress(Progress progress) {
  167.                         long percentage = progress.currentBytes * 100 / progress.totalBytes;
  168.                         progressDialog.setMessage("Downloading : "+percentage+" %");
  169.                     }
  170.                 })
  171.                 .start(new OnDownloadListener() {
  172.                     @Override
  173.                     public void onDownloadComplete() {
  174.                         progressDialog.dismiss();
  175.                         Toast.makeText(GalleryActivity.this, "Download Complete!", Toast.LENGTH_SHORT).show();
  176.                     }
  177.  
  178.                     @Override
  179.                     public void onError(Error error) {
  180.                         Toast.makeText(GalleryActivity.this, "Some error occur", Toast.LENGTH_SHORT).show();
  181.                     }
  182.  
  183.                 });
  184.     }
  185.    
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement