Fix SecurityException at getActiveSubscriptionInfoList() on N and O
Creating ConnectivityUtil instances after checking the minimum set of permissions since SubscriptionManager#getActiveSubscriptionInfoList() requires READ_PHONE_STATE and users can revoke the permission. On P and beyond, the subscription list will be filtered instead when no permission. Bug: 159421050 Test: Manual Signed-off-by: Taesu Lee <taesu82.lee@samsung.com> Change-Id: Iafc3c57060e1893a91e629b1b3e3ba9ad78967cb
This commit is contained in:
@@ -79,11 +79,6 @@ public class DataModelImpl extends DataModel {
|
||||
mDataModelWorker = new BackgroundWorker();
|
||||
mDatabaseHelper = DatabaseHelper.getInstance(context);
|
||||
mSyncManager = new SyncManager();
|
||||
if (OsUtil.isAtLeastN()) {
|
||||
createConnectivityUtilForEachActiveSubscription();
|
||||
} else {
|
||||
sConnectivityUtilInstanceCachePreN = new ConnectivityUtil(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -219,6 +214,12 @@ public class DataModelImpl extends DataModel {
|
||||
|
||||
@Override
|
||||
public void onApplicationCreated() {
|
||||
if (OsUtil.isAtLeastN()) {
|
||||
createConnectivityUtilForEachActiveSubscription();
|
||||
} else {
|
||||
sConnectivityUtilInstanceCachePreN = new ConnectivityUtil(mContext);
|
||||
}
|
||||
|
||||
FixupMessageStatusOnStartupAction.fixupMessageStatus();
|
||||
ProcessPendingMessagesAction.processFirstPendingMessage();
|
||||
SyncManager.immediateSync();
|
||||
|
||||
Reference in New Issue
Block a user