Merged in PhotonQyv/mastodon_etalab/ImageIntentPermission (pull request #73)
ImageIntentPermission (Corrected version)
This commit is contained in:
commit
3b9a63c6af
|
@ -14,18 +14,22 @@
|
|||
* see <http://www.gnu.org/licenses>. */
|
||||
package fr.gouv.etalab.mastodon.activities;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
|
@ -114,6 +118,8 @@ public class MainActivity extends AppCompatActivity
|
|||
private RelativeLayout main_app_container;
|
||||
private Stack<Integer> stackBack = new Stack<>();
|
||||
|
||||
private final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 0;
|
||||
|
||||
public MainActivity() {
|
||||
}
|
||||
|
||||
|
@ -437,8 +443,43 @@ public class MainActivity extends AppCompatActivity
|
|||
}).show();
|
||||
}
|
||||
Helper.switchLayout(MainActivity.this);
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) !=
|
||||
PackageManager.PERMISSION_GRANTED) {
|
||||
// Should we show an explanation?
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
||||
|
||||
// If we want to explain the reason for the permission it needs to be added here.
|
||||
|
||||
} else {
|
||||
ActivityCompat.requestPermissions(this,
|
||||
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
|
||||
MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode,
|
||||
String permissions[], int[] grantResults) {
|
||||
switch (requestCode) {
|
||||
case MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE: {
|
||||
// If request is cancelled, the result arrays are empty.
|
||||
if (grantResults.length > 0
|
||||
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
// We have the permission.
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
|
|
|
@ -521,27 +521,9 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
|
|||
}
|
||||
|
||||
// Handles uploading shared images
|
||||
// TODO: Get it working for ACTION_SEND_MULTIPLE
|
||||
public void uploadSharedImage(ArrayList<Uri> uri)
|
||||
{
|
||||
if (!uri.isEmpty()) {
|
||||
|
||||
/*
|
||||
This was so I could test get info about first Uri for both ACTION_SEND &
|
||||
ACTION_SEND_MULTIPLE.
|
||||
|
||||
The ACTION_SEND works fine, ACTION_SEND_MULTIPLE doesn't.
|
||||
|
||||
Turns out the Uris are different if single image is shared, versus multiple images.
|
||||
|
||||
SINGLE Uri: content://external/images/media/some_number
|
||||
MULTIPLE Uri: file:///sdcard/Pictures/Shader/Images/some_jpg
|
||||
|
||||
NB. Both Uris are for the same file.
|
||||
|
||||
The first loads, the second (SEND_MULTIPLE) fails.
|
||||
|
||||
*/
|
||||
for(Uri fileUri: uri) {
|
||||
if (fileUri != null) {
|
||||
picture_scrollview.setVisibility(View.VISIBLE);
|
||||
|
|
Loading…
Reference in New Issue