Commit b67d79d7 by olly Committed by Oliver Woodman

Request storage permission if missing

PiperOrigin-RevId: 302345647
parent a39715d3
...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.demo; ...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.demo;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.AssetManager; import android.content.res.AssetManager;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask; import android.os.AsyncTask;
...@@ -34,6 +35,7 @@ import android.widget.ExpandableListView.OnChildClickListener; ...@@ -34,6 +35,7 @@ import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.ParserException;
...@@ -63,6 +65,7 @@ public class SampleChooserActivity extends AppCompatActivity ...@@ -63,6 +65,7 @@ public class SampleChooserActivity extends AppCompatActivity
private static final String TAG = "SampleChooserActivity"; private static final String TAG = "SampleChooserActivity";
private String[] uris;
private boolean useExtensionRenderers; private boolean useExtensionRenderers;
private DownloadTracker downloadTracker; private DownloadTracker downloadTracker;
private SampleAdapter sampleAdapter; private SampleAdapter sampleAdapter;
...@@ -81,7 +84,6 @@ public class SampleChooserActivity extends AppCompatActivity ...@@ -81,7 +84,6 @@ public class SampleChooserActivity extends AppCompatActivity
Intent intent = getIntent(); Intent intent = getIntent();
String dataUri = intent.getDataString(); String dataUri = intent.getDataString();
String[] uris;
if (dataUri != null) { if (dataUri != null) {
uris = new String[] {dataUri}; uris = new String[] {dataUri};
} else { } else {
...@@ -105,8 +107,7 @@ public class SampleChooserActivity extends AppCompatActivity ...@@ -105,8 +107,7 @@ public class SampleChooserActivity extends AppCompatActivity
DemoApplication application = (DemoApplication) getApplication(); DemoApplication application = (DemoApplication) getApplication();
useExtensionRenderers = application.useExtensionRenderers(); useExtensionRenderers = application.useExtensionRenderers();
downloadTracker = application.getDownloadTracker(); downloadTracker = application.getDownloadTracker();
SampleListLoader loaderTask = new SampleListLoader(); loadSample();
loaderTask.execute(uris);
// Start the download service if it should be running but it's not currently. // Start the download service if it should be running but it's not currently.
// Starting the service in the foreground causes notification flicker if there is no scheduled // Starting the service in the foreground causes notification flicker if there is no scheduled
...@@ -157,6 +158,37 @@ public class SampleChooserActivity extends AppCompatActivity ...@@ -157,6 +158,37 @@ public class SampleChooserActivity extends AppCompatActivity
sampleAdapter.notifyDataSetChanged(); sampleAdapter.notifyDataSetChanged();
} }
@Override
public void onRequestPermissionsResult(
int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (grantResults.length == 0) {
// Empty results are triggered if a permission is requested while another request was already
// pending and can be safely ignored in this case.
return;
}
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
loadSample();
} else {
Toast.makeText(getApplicationContext(), R.string.sample_list_load_error, Toast.LENGTH_LONG)
.show();
finish();
}
}
private void loadSample() {
Assertions.checkNotNull(uris);
for (int i = 0; i < uris.length; i++) {
Uri uri = Uri.parse(uris[i]);
if (Util.maybeRequestReadExternalStoragePermission(this, uri)) {
return;
}
}
SampleListLoader loaderTask = new SampleListLoader();
loaderTask.execute(uris);
}
private void onSampleGroups(final List<SampleGroup> groups, boolean sawError) { private void onSampleGroups(final List<SampleGroup> groups, boolean sawError) {
if (sawError) { if (sawError) {
Toast.makeText(getApplicationContext(), R.string.sample_list_load_error, Toast.LENGTH_LONG) Toast.makeText(getApplicationContext(), R.string.sample_list_load_error, Toast.LENGTH_LONG)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment