mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-13 13:05:03 -05:00
62aa1b87d0
Android allows other apps to access protected content of an app without requesting the necessary permission when the app returns an Intent with FLAG_GRANT_READ_URI_PERMISSION. This regularly happens as a result of ACTION_GET_CONTENT, i.e. what we use to pick content to be attached to a message. Accessing that content only works while the receiving activity is running. Afterwards accessing the content throws a SecurityException because of the missing permission. This commit changes K-9 Mail's behavior to copy the content to a temporary file in K-9's cache directory while the activity is still running. Fixes issue 4847, 5821 This also fixes bugs related to the fact that K-9 Mail didn't save a copy of attached content in the message database. Fixes issue 1187, 3330, 4930
33 lines
900 B
Java
33 lines
900 B
Java
package com.fsck.k9.activity;
|
|
|
|
import android.os.Bundle;
|
|
import android.view.MotionEvent;
|
|
|
|
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
|
import com.fsck.k9.activity.K9ActivityCommon.K9ActivityMagic;
|
|
import com.fsck.k9.activity.misc.SwipeGestureDetector.OnSwipeGestureListener;
|
|
|
|
|
|
public class K9Activity extends SherlockFragmentActivity implements K9ActivityMagic {
|
|
|
|
private K9ActivityCommon mBase;
|
|
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
mBase = K9ActivityCommon.newInstance(this);
|
|
super.onCreate(savedInstanceState);
|
|
}
|
|
|
|
@Override
|
|
public boolean dispatchTouchEvent(MotionEvent event) {
|
|
mBase.preDispatchTouchEvent(event);
|
|
return super.dispatchTouchEvent(event);
|
|
}
|
|
|
|
@Override
|
|
public void setupGestureDetector(OnSwipeGestureListener listener) {
|
|
mBase.setupGestureDetector(listener);
|
|
}
|
|
}
|