Changes for Android 9 (Pie)
* validate the stored file before start the mission * add warning on StoredFileHelper.java * simplify the communication between MissionAdapter and DownloadManagerService.java since shares the same looper * simplify setVisible() "start/pause all downloads" buttons logic
This commit is contained in:
parent
85d1888ba7
commit
1a643126de
6 changed files with 66 additions and 69 deletions
|
|
@ -9,6 +9,7 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.ConnectivityManager;
|
||||
|
|
@ -19,6 +20,7 @@ import android.net.Uri;
|
|||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Handler.Callback;
|
||||
import android.os.IBinder;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
|
|
@ -88,14 +90,14 @@ public class DownloadManagerService extends Service {
|
|||
private Builder downloadDoneNotification = null;
|
||||
private StringBuilder downloadDoneList = null;
|
||||
|
||||
private final ArrayList<Handler> mEchoObservers = new ArrayList<>(1);
|
||||
private final ArrayList<Callback> mEchoObservers = new ArrayList<>(1);
|
||||
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
private BroadcastReceiver mNetworkStateListener = null;
|
||||
private ConnectivityManager.NetworkCallback mNetworkStateListenerL = null;
|
||||
|
||||
private SharedPreferences mPrefs = null;
|
||||
private final SharedPreferences.OnSharedPreferenceChangeListener mPrefChangeListener = this::handlePreferenceChange;
|
||||
private final OnSharedPreferenceChangeListener mPrefChangeListener = this::handlePreferenceChange;
|
||||
|
||||
private boolean mLockAcquired = false;
|
||||
private LockManager mLock = null;
|
||||
|
|
@ -128,12 +130,7 @@ public class DownloadManagerService extends Service {
|
|||
}
|
||||
|
||||
mBinder = new DownloadManagerBinder();
|
||||
mHandler = new Handler(Looper.myLooper()) {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
DownloadManagerService.this.handleMessage(msg);
|
||||
}
|
||||
};
|
||||
mHandler = new Handler(this::handleMessage);
|
||||
|
||||
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
|
||||
|
|
@ -272,7 +269,7 @@ public class DownloadManagerService extends Service {
|
|||
return mBinder;
|
||||
}
|
||||
|
||||
public void handleMessage(Message msg) {
|
||||
private boolean handleMessage(@NonNull Message msg) {
|
||||
DownloadMission mission = (DownloadMission) msg.obj;
|
||||
|
||||
switch (msg.what) {
|
||||
|
|
@ -300,14 +297,12 @@ public class DownloadManagerService extends Service {
|
|||
mFailedDownloads.delete(mFailedDownloads.indexOfValue(mission));
|
||||
|
||||
synchronized (mEchoObservers) {
|
||||
for (Handler handler : mEchoObservers) {
|
||||
Message echo = new Message();
|
||||
echo.what = msg.what;
|
||||
echo.obj = msg.obj;
|
||||
|
||||
handler.sendMessage(echo);
|
||||
for (Callback observer : mEchoObservers) {
|
||||
observer.handleMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void handleConnectivityState(boolean updateOnly) {
|
||||
|
|
@ -515,7 +510,7 @@ public class DownloadManagerService extends Service {
|
|||
return PendingIntent.getService(this, intent.hashCode(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
}
|
||||
|
||||
private void manageObservers(Handler handler, boolean add) {
|
||||
private void manageObservers(Callback handler, boolean add) {
|
||||
synchronized (mEchoObservers) {
|
||||
if (add) {
|
||||
mEchoObservers.add(handler);
|
||||
|
|
@ -596,11 +591,11 @@ public class DownloadManagerService extends Service {
|
|||
);
|
||||
}
|
||||
|
||||
public void addMissionEventListener(Handler handler) {
|
||||
public void addMissionEventListener(Callback handler) {
|
||||
manageObservers(handler, true);
|
||||
}
|
||||
|
||||
public void removeMissionEventListener(Handler handler) {
|
||||
public void removeMissionEventListener(Callback handler) {
|
||||
manageObservers(handler, false);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue