ProcessPendingMessagesAction works based on subscriptions

PorcessPendingMessagesAction queues one message for sending/downloading
associated with a subscription triggering current action at a time. And
the ConnectivityUtil also works based on subscriptions so that pending
messages can be processed regardless of other phones' state in multi-sim
case.

It includes cleanup code as well.

Test: Manual

Change-Id: Id6b4f4a0aa6a3291e7a4d8a5d3f0fbb9db3c5b86
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
This commit is contained in:
Taesu Lee
2020-02-28 18:16:54 +09:00
parent 4e84ad49bb
commit 4e99cc0a02
21 changed files with 274 additions and 464 deletions
@@ -46,6 +46,7 @@ import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import java.util.ArrayList;
import java.util.List;
public class FakeFactory extends Factory {
@@ -121,7 +122,8 @@ public class FakeFactory extends Factory {
@Override
public List<SubscriptionInfo> getActiveSubscriptionInfoList() {
return null;
// Return empty list
return new ArrayList<>();
}
@Override
@@ -35,10 +35,10 @@ public class DataModelTest extends BugleTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
dataModel = new DataModelImpl(getTestContext());
FakeFactory.register(mContext)
.withDataModel(dataModel);
super.setUp();
FakeFactory factory = FakeFactory.register(mContext);
dataModel = new DataModelImpl(getTestContext());
factory.withDataModel(dataModel);
}
@SmallTest
@@ -48,7 +48,6 @@ import com.android.messaging.datamodel.data.SettingsData.SettingsDataListener;
import com.android.messaging.datamodel.data.SubscriptionListData;
import com.android.messaging.datamodel.data.TestDataFactory;
import com.android.messaging.datamodel.data.VCardContactItemData;
import com.android.messaging.util.ConnectivityUtil;
public class FakeDataModel extends DataModel {
private BackgroundWorker mWorker;
@@ -58,7 +57,6 @@ public class FakeDataModel extends DataModel {
private ContactPickerData mContactPickerData;
private MediaPickerData mMediaPickerData;
private PeopleAndOptionsData mPeopleAndOptionsData;
private ConnectivityUtil mConnectivityUtil;
private SyncManager mSyncManager;
private SettingsData mSettingsData;
private DraftMessageData mDraftMessageData;
@@ -102,11 +100,6 @@ public class FakeDataModel extends DataModel {
return this;
}
public FakeDataModel withConnectivityUtil(final ConnectivityUtil connectivityUtil) {
mConnectivityUtil = connectivityUtil;
return this;
}
public FakeDataModel withSyncManager(final SyncManager syncManager) {
mSyncManager = syncManager;
return this;
@@ -219,11 +212,6 @@ public class FakeDataModel extends DataModel {
return mActionService;
}
@Override
public ConnectivityUtil getConnectivityUtil() {
return mConnectivityUtil;
}
@Override
public SyncManager getSyncManager() {
return mSyncManager;
@@ -35,7 +35,6 @@ import com.android.messaging.datamodel.action.ActionMonitor.ActionCompletedListe
import com.android.messaging.datamodel.action.ActionMonitor.ActionExecutedListener;
import com.android.messaging.datamodel.action.ActionTestHelpers.ResultTracker;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubBackgroundWorker;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubConnectivityUtil;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubLoader;
import java.util.ArrayList;
@@ -291,8 +290,7 @@ public class ActionServiceSystemTest extends BugleServiceTestCase<ActionServiceI
FakeFactory.registerWithFakeContext(getContext(), mContext)
.withDataModel(new FakeDataModel(mContext)
.withBackgroundWorkerForActionService(mWorker)
.withActionService(new ActionService())
.withConnectivityUtil(new StubConnectivityUtil(mContext)));
.withActionService(new ActionService()));
mLoader = new StubLoader();
setContext(Factory.get().getApplicationContext());
@@ -35,7 +35,6 @@ import com.android.messaging.datamodel.action.ActionMonitor.ActionCompletedListe
import com.android.messaging.datamodel.action.ActionMonitor.ActionStateChangedListener;
import com.android.messaging.datamodel.action.ActionTestHelpers.ResultTracker;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubBackgroundWorker;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubConnectivityUtil;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubLoader;
import java.util.ArrayList;
@@ -145,8 +144,7 @@ public class ActionServiceTest extends BugleServiceTestCase<ActionServiceImpl>
FakeFactory.registerWithFakeContext(getContext(),mContext)
.withDataModel(new FakeDataModel(mContext)
.withBackgroundWorkerForActionService(mWorker)
.withActionService(new ActionService())
.withConnectivityUtil(new StubConnectivityUtil(mContext)));
.withActionService(new ActionService()));
mStates = new ArrayList<Integer>();
setContext(Factory.get().getApplicationContext());
@@ -21,8 +21,6 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import com.android.messaging.util.ConnectivityUtil;
import java.util.ArrayList;
import java.util.List;
@@ -174,18 +172,4 @@ public class ActionTestHelpers {
}
}
}
public static class StubConnectivityUtil extends ConnectivityUtil {
public StubConnectivityUtil(final Context context) {
super(context);
}
@Override
public void registerForSignalStrength() {
}
@Override
public void unregisterForSignalStrength() {
}
}
}
@@ -36,7 +36,6 @@ import com.android.messaging.datamodel.MediaScratchFileProvider;
import com.android.messaging.datamodel.MessagingContentProvider;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubActionService;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubActionService.StubActionServiceCallLog;
import com.android.messaging.datamodel.action.ActionTestHelpers.StubConnectivityUtil;
import com.android.messaging.datamodel.action.ReadDraftDataAction.ReadDraftDataActionListener;
import com.android.messaging.datamodel.data.MessageData;
import com.android.messaging.datamodel.data.MessagePartData;
@@ -473,8 +472,7 @@ public class ReadWriteDraftMessageActionTest extends BugleTestCase {
mService = new StubActionService();
final FakeDataModel fakeDataModel = new FakeDataModel(context)
.withActionService(mService)
.withConnectivityUtil(new StubConnectivityUtil(context));
.withActionService(mService);
FakeFactory.registerWithFakeContext(getTestContext(), context)
.withDataModel(fakeDataModel);