alps/device/mediatek/common/device.mk
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/BootCmpReceiver.java
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/PresetContactsImportProcessor.java [new file with mode: 0644]
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/SimProcessorManager.java
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/SimServiceUtils.java
sagereal/mk/VQ244_GM2441_ALTICE_HomePhone_4G_L/ProjectConfig.mk
alps/device/mediatek/common/device.mk
#redmine 8790 Call APK - Phone number to install in the phone 20191223 begin
ifeq ($(strip $(SAGEREAL_PRESET_PHONE_NUMBER)), true)
PRODUCT_PROPERTY_OVERRIDES += ro.sr.preset_phone_number=1
else
PRODUCT_PROPERTY_OVERRIDES += ro.sr.preset_phone_number=0
endif
#redmine 8790 Call APK - Phone number to install in the phone 20191223 end
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/BootCmpReceiver.java
public void onReceive(Context context, Intent intent) {
if (SimProcessorUtils.hasBasicPermissions(context)) {
.......
else if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
if (pendingIntent != null) {
Log.e(TAG, "[onReceive] send pending intent ! intent=" + pendingIntent);
processPhoneBookChanged(context, pendingIntent);
pendingIntent = null;
}
if (!isPhbReady()) {
processBootComplete(context);
} else {
processDupSimContacts(context);
}
//redmine 166413 159918 tanghulin modify for Preset service number. 2019-02-25 begin
// [START] add for Preset service number
if (SystemProperties.get("ro.sr.preset_phone_number").equals("1")) {
presetServiceNumber(context);
}
// [END]
//redmine 166413 159918 tanghulin modify for Preset service number. 2019-02-25 end
}
}
}
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/PresetContactsImportProcessor.java [new file with mode: 0644]
package com.mediatek.simprocessor;
import android.content.Context;
import android.content.Intent;
import android.content.ContentProviderOperation;
import android.content.ContentValues;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.os.RemoteException;
import java.util.ArrayList;
import com.mediatek.provider.MtkContactsContract;
import com.mediatek.simprocessor.SimProcessorManager.ProcessorCompleteListener;
import com.mediatek.simprocessor.SimServiceUtils;
import com.mediatek.simprocessor.Log;
import android.provider.ContactsContract.PhoneLookup;
public class PresetContactsImportProcessor extends SimProcessorBase {
private static final String TAG = "PresetContactsImportProcessor";
private static boolean sIsRunningNumberCheck = false;
private static final int INSERT_PRESET_NUMBER_COUNT = 7; //预置联系人的个数
private static final String INSERT_PRESET_NAME[] = {
"Voice mail",
"B2B Customer Service",
"B2B Customer Service",
"Emergency",
"Altice Emergency for mobile thievery report",
"Altice Directory",
"Customer Service"}; //各预置联系人的姓名
private static final String INSERT_PRESET_NUMBER[] = {
"*777",
"*1100",
"*1600",
"911",
"*411",
"*511",
"*555"}; //各预置联系人的号码
private int mSubId;
private Context mContext;
public PresetContactsImportProcessor(Context context, int subId, Intent intent, ProcessorCompleteListener listener) {
super(intent, listener);
mContext = context;
mSubId = subId;
}
@Override
public int getType() {
return SimServiceUtils.SERVICE_WORK_IMPORT_PRESET_CONTACTS;
}
@Override
public void doWork() {
if (isCancelled()) {
Log.d(TAG, "[doWork]cancel import preset contacts work. Thread id=" + Thread.currentThread().getId());
return;
}
importDefaultReadonlyContact();
}
private void importDefaultReadonlyContact(){
Log.i(TAG, "isRunningNumberCheck before: " + sIsRunningNumberCheck);
if (sIsRunningNumberCheck) {
return;
}
sIsRunningNumberCheck = true;
for(int i = 0;i < INSERT_PRESET_NUMBER_COUNT; i++) {
Log.i(TAG, "isRunningNumberCheck after: " + sIsRunningNumberCheck);
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(INSERT_PRESET_NUMBER[i]));
Log.i(TAG, "getContactInfoByPhoneNumbers(), uri = " + uri);
Cursor contactCursor = mContext.getContentResolver().query(uri,
new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup.PHOTO_ID}, null, null, null);
try {
if (contactCursor != null && contactCursor.getCount() > 0) {
return;
} else {
final ArrayList operationList = new ArrayList();
ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
ContentValues contactvalues = new ContentValues();
contactvalues.put(RawContacts.ACCOUNT_NAME, "PreSet Contacts");
contactvalues.put(RawContacts.ACCOUNT_TYPE, "PreSet Contacts Account");
contactvalues.put(MtkContactsContract.ContactsColumns.INDICATE_PHONE_SIM, MtkContactsContract.RawContacts.INDICATE_PHONE);
builder.withValues(contactvalues);
builder.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED);
operationList.add(builder.build());
builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
builder.withValueBackReference(Phone.RAW_CONTACT_ID, 0);
builder.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
builder.withValue(Phone.TYPE, Phone.TYPE_MOBILE);
builder.withValue(Phone.NUMBER, INSERT_PRESET_NUMBER[i]);
builder.withValue(Data.IS_PRIMARY, 1);
operationList.add(builder.build());
builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
builder.withValueBackReference(StructuredName.RAW_CONTACT_ID, 0);
builder.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
builder.withValue(StructuredName.DISPLAY_NAME, INSERT_PRESET_NAME[i]);
operationList.add(builder.build());
try {
mContext.getContentResolver().applyBatch(ContactsContract.AUTHORITY, operationList);
} catch (RemoteException e) {
Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
} catch (OperationApplicationException e) {
Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage()));
}
}
} finally {
// when this service start,but the contactsprovider has not been started yet.
// the contactCursor perhaps null, but not always.(first load will weekup the provider)
// so add null block to avoid nullpointerexception
if (contactCursor != null) {
contactCursor.close();
}
}
Log.i(TAG, "isRunningNumberCheck insert: " + sIsRunningNumberCheck);
sIsRunningNumberCheck = false;
}
}
}
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/SimProcessorManager.java
private SimProcessorBase createProcessor(Context context, int subId, int workType,
Intent intent, ProcessorCompleteListener listener) {
Log.d(TAG, "[createProcessor] create new processor for subId: " + subId + ", workType: "
+ workType);
SimProcessorBase processor = null;
if (workType == SimServiceUtils.SERVICE_WORK_IMPORT) {
processor = new SimImportProcessor(context, subId, intent, listener);
} else if (workType == SimServiceUtils.SERVICE_WORK_REMOVE) {
processor = new SimRemoveProcessor(context, subId, intent, listener);
}//redmine 8790 Call APK - Phone number to install in the phone 20191223 begin
else if (workType == SimServiceUtils.SERVICE_WORK_IMPORT_PRESET_CONTACTS) {
processor = new PresetContactsImportProcessor(context, subId, intent, listener);
}//redmine 8790 Call APK - Phone number to install in the phone 20191223 end
return processor;
}
alps/vendor/mediatek/proprietary/packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/SimServiceUtils.java
public static final int SERVICE_IMPORT_CONTACTS = 3;
//redmine 8790 Call APK - Phone number to install in the phone 20191223 begin
public static final int SERVICE_WORK_IMPORT_PRESET_CONTACTS = 5;
//redmine 8790 Call APK - Phone number to install in the phone 20191223 end