Remove deprecated startActivity for file download (#737)

Remove deprecated startActivity for file download

Co-authored-by: M M Arif <mmarif@swatian.com>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/737
This commit is contained in:
M M Arif 2020-10-29 13:51:52 +01:00
parent 65c0ecaad1
commit 2064c40c7d

View File

@ -1,5 +1,6 @@
package org.mian.gitnex.activities; package org.mian.gitnex.activities;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
@ -21,8 +22,11 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import com.github.barteksc.pdfviewer.PDFView; import com.github.barteksc.pdfviewer.PDFView;
import com.github.barteksc.pdfviewer.util.FitPolicy; import com.github.barteksc.pdfviewer.util.FitPolicy;
@ -471,8 +475,6 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
if(!tinyDb.getString("downloadFileContents").isEmpty()) { if(!tinyDb.getString("downloadFileContents").isEmpty()) {
int CREATE_REQUEST_CODE = 40;
File outputFileName = new File(tinyDb.getString("downloadFileName")); File outputFileName = new File(tinyDb.getString("downloadFileName"));
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
@ -481,48 +483,48 @@ public class FileViewActivity extends BaseActivity implements BottomSheetFileVie
intent.setType("*/*"); intent.setType("*/*");
intent.putExtra(Intent.EXTRA_TITLE, outputFileName.getName()); intent.putExtra(Intent.EXTRA_TITLE, outputFileName.getName());
startActivityForResult(intent, CREATE_REQUEST_CODE); fileDownloadActivityResultLauncher.launch(intent);
} }
else { else {
Toasty.warning(ctx, getString(R.string.waitLoadingDownloadFile)); Toasty.warning(ctx, getString(R.string.waitLoadingDownloadFile));
} }
} }
@Override ActivityResultLauncher<Intent> fileDownloadActivityResultLauncher = registerForActivityResult(
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
super.onActivityResult(requestCode, resultCode, data); @Override
public void onActivityResult(ActivityResult result) {
if(requestCode == 40 && resultCode == RESULT_OK) { if (result.getResultCode() == Activity.RESULT_OK) {
try { Intent data = result.getData();
assert data != null; try {
Uri uri = data.getData();
assert uri != null; assert data != null;
OutputStream outputStream = getContentResolver().openOutputStream(uri); Uri uri = data.getData();
byte[] dataAsBytes = Base64.decode(tinyDb.getString("downloadFileContents"), 0); assert uri != null;
OutputStream outputStream = getContentResolver().openOutputStream(uri);
assert outputStream != null; byte[] dataAsBytes = Base64.decode(tinyDb.getString("downloadFileContents"), 0);
outputStream.write(dataAsBytes);
outputStream.close();
Toasty.success(ctx, getString(R.string.downloadFileSaved)); assert outputStream != null;
outputStream.write(dataAsBytes);
outputStream.close();
Toasty.success(ctx, getString(R.string.downloadFileSaved));
}
catch(IOException e) {
Log.e("errorFileDownloading", Objects.requireNonNull(e.getMessage()));
}
} }
catch(IOException e) {
Log.e("errorFileDownloading", Objects.requireNonNull(e.getMessage()));
}
} }
});
}
private void initCloseListener() { private void initCloseListener() {