一:圖庫中的照片全屏顯示
(packages/apps/Gallery2/)
第一種:
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 0592bf4..e2667d3 100755
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -39,6 +39,9 @@ import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.net.Uri;
+import android.view.WindowManager;
+import android.view.Window;
+import android.graphics.Color;
import android.nfc.NfcAdapter;
import android.nfc.NfcAdapter.CreateBeamUrisCallback;
import android.nfc.NfcEvent;
@@ -1237,6 +1240,9 @@ public abstract class PhotoPage extends ActivityState implements
if (mShowBars) return;
mShowBars = true;
mOrientationManager.unlockOrientation();
+ Window win = mActivity.getWindow();
+ win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
mActionBar.show();
mActivity.getGLRoot().setLightsOutMode(false);
/// M: [FEATURE.MODIFY] automatic layer visibility change @{
@@ -1260,7 +1266,21 @@ public abstract class PhotoPage extends ActivityState implements
if (!mShowBars) return;
mShowBars = false;
mActionBar.hide();
- mActivity.getGLRoot().setLightsOutMode(true);
+ Window win = mActivity.getWindow();
+ win.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+ int flags = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+
+ | View.SYSTEM_UI_FLAG_FULLSCREEN
+
+ | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+
+ | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+
+ win.getDecorView().setSystemUiVisibility(flags);
+ win.setNavigationBarColor(Color.TRANSPARENT);
+ //mActivity.getGLRoot().setLightsOutMode(true);
mHandler.removeMessages(MSG_HIDE_BARS);
refreshBottomControlsWhenReady();
}
@@ -2168,6 +2188,9 @@ public abstract class PhotoPage extends ActivityState implements
mSensorManager.registerListener(this, proxmitySensor, SensorManager.SENSOR_DELAY_NORMAL);
}
// End of Vanzo:hanshengpeng
+ Window win = mActivity.getWindow();
+ win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
if (mMuteVideo != null) {
mMuteVideo.setMuteHasPaused(false);
mMuteVideo.needPlayMuteVideo();
@@ -2252,6 +2275,9 @@ public abstract class PhotoPage extends ActivityState implements
mScreenNailSet = null;
mScreenNailItem = null;
}
+ Window win = mActivity.getWindow();
+ win.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ win.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
mActivity.getGLRoot().setOrientationSource(null);
if (mBottomControls != null) mBottomControls.cleanup();
第二種:
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 0df2170..9b522cd 100755
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -116,6 +116,9 @@ import com.mediatek.galleryframework.base.BottomControlLayer;
import com.mediatek.galleryframework.base.PhotoPageBottomViewControls;
import com.mediatek.galleryframework.base.LayerManager;
import com.mediatek.galleryframework.base.MediaData;
+import android.view.WindowManager;
+import android.view.Window;
+import android.graphics.Color;
/* Vanzo:hanshengpeng on: Sun, 24 Jan 2016 14:44:43 +0800
*/
import android.os.SystemProperties;
@@ -1183,6 +1186,8 @@ public abstract class PhotoPage extends ActivityState implements
if (mShowBars) return;
mShowBars = true;
mOrientationManager.unlockOrientation();
+ Window win = mActivity.getWindow();
+ win.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
mActionBar.show();
mActivity.getGLRoot().setLightsOutMode(false);
/// M: [FEATURE.MODIFY] automatic layer visibility change @{
@@ -1206,6 +1211,9 @@ public abstract class PhotoPage extends ActivityState implements
if (!mShowBars) return;
mShowBars = false;
mActionBar.hide();
+ Window win = mActivity.getWindow();
+ win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
mActivity.getGLRoot().setLightsOutMode(true);
mHandler.removeMessages(MSG_HIDE_BARS);
refreshBottomControlsWhenReady();
@@ -2165,6 +2173,7 @@ public abstract class PhotoPage extends ActivityState implements
mScreenNailSet = null;
mScreenNailItem = null;
}
+
mActivity.getGLRoot().setOrientationSource(null);
if (mBottomControls != null) mBottomControls.cleanup();
二:預設桌面不自動生成到桌面清單中
(packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java)
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
index e299302..5ac7b2b 100755
--- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
+++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
@@ -1059,11 +1059,15 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
if (partner == null || !partner.hideDefaultWallpaper()) {
// Add an entry for the default wallpaper (stored in system resources)
+/*
+ * TODO: replace this line with your comment
WallpaperTileInfo defaultWallpaperInfo = Utilities.ATLEAST_KITKAT
? getDefaultWallpaper() : getPreKKDefaultWallpaperInfo();
if (defaultWallpaperInfo != null) {
bundled.add(0, defaultWallpaperInfo);
}
+ */
+// End of Vanzo:yujianpeng
}
return bundled;
}
三:wifi預設關閉
(packages/apps/Launcher3/)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index df22272..8929289 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -70,6 +70,8 @@
<uses-permission android:name="com.android.launcher3.permission.RECEIVE_FIRST_LOAD_BROADCAST" />
<!-- M: hide apps activity requires this permission to get package size. -->
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
+ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- M: ALSP02141215, android security patch. -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- M: ALSP02241595, add MANAGE_USERS permission. -->
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 9366659..7c30d9d 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -146,6 +146,9 @@ import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import com.android.featureoption.FeatureOption;
+import android.net.NetworkInfo;
+import android.net.wifi.WifiManager;
+import android.net.ConnectivityManager;
// End of Vanzo:hanshengpeng
/**
@@ -5163,6 +5166,18 @@ public class Launcher extends Activity
editor.apply();
}
+ private void closeWifiGps() {
+ // Intent sh = new Intent("com.android.settings.location.CLOSE");
+ //sendBroadcast(sh);
+ final WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
+ ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo netWork = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+ if (wifiManager == null || netWork.isConnected()) {
+ return;
+ }
+ wifiManager.setWifiEnabled(false);
+ }
+
@Thunk void showFirstRunClings() {
// The two first run cling paths are mutually exclusive, if the launcher is preinstalled
// on the device, then we always show the first run cling experience (or if there is no
@@ -5175,6 +5190,7 @@ public class Launcher extends Activity
} else {
launcherClings.showLongPressCling(true);
}
+ closeWifiGps();
}
}
四:手機插入SD卡時,預設存儲器為SD卡
(packages/apps/Settings/)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c8b252a..bed2c41 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -3173,6 +3173,12 @@ add fp control
</intent-filter>
</receiver>
<!-- End of Vanzo:fenghaitao -->
-
+ <receiver android:name=".UsbBroadCastReceiver">
+ <intent-filter android:priority="1000">
+ <action android:name="android.intent.action.MEDIA_MOUNTED"/>
+ <action android:name="android.intent.action.MEDIA_EJECT" />
+ <data android:scheme="file"/>
+ </intent-filter>
+ </receiver>
</application>
</manifest>
diff --git a/src/com/android/settings/UsbBroadCastReceiver.java b/src/com/android/settings/UsbBroadCastReceiver.java
new file mode 100644
index 0000000..b578167
--- /dev/null
+++ b/src/com/android/settings/UsbBroadCastReceiver.java
@@ -0,0 +1,26 @@
+package com.android.settings;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
+import android.util.Log;
+import android.os.storage.IMountService;
+import com.mediatek.storage.StorageManagerEx;
+
+public class UsbBroadCastReceiver extends BroadcastReceiver {
+ String TAG = "UsbBroadCastReceiver";
+ String ExternalStoragePath = StorageManagerEx.getExternalStoragePath();
+
+
+ public void onReceive(Context context, Intent intent) {
+
+ Log.i(TAG,"receive change request");
+ if (Intent.ACTION_MEDIA_MOUNTED.equals(intent.getAction())) {
+ StorageManagerEx.setDefaultPath(ExternalStoragePath);
+ }
+ }
+
+}
五:GPS預設節電模式
(packages/apps/Settings/src/com/android/settings/location/LocationSettings.java)
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 3b71e79..3324c4d 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -385,7 +385,7 @@ public class LocationSettings extends LocationSettingsBase
@Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
if (isChecked) {
- setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
+ setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_BATTERY_SAVING);
} else {
setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_OFF);
}
六:更改線上桌面名稱
(packages/apps/Settings/src/com/android/settings/WallpaperTypeSettings.java)
diff --git a/src/com/android/settings/WallpaperTypeSettings.java b/src/com/android/settings/WallpaperTypeSettings.java
index 9046bfb..138167c 100644
--- a/src/com/android/settings/WallpaperTypeSettings.java
+++ b/src/com/android/settings/WallpaperTypeSettings.java
@@ -31,6 +31,8 @@ import com.android.settings.search.SearchIndexableRaw;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
public class WallpaperTypeSettings extends SettingsPreferenceFragment implements Indexable {
@@ -70,7 +72,14 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment implements
pref.setIntent(prefIntent);
CharSequence label = info.loadLabel(pm);
if (label == null) label = info.activityInfo.packageName;
- pref.setTitle(label);
+ String locale = Locale.getDefault().getLanguage();
+ if("es".equals(locale )&&label.equals("Online Wallpaper")){
+ pref.setTitle("Fondo de pantalla en línea");
+ }else{
+ pref.setTitle(label);
+ }
parent.addPreference(pref);
}
}
七:相機預設防閃做到60
(vendor/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml)
diff --git a/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml b/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml
index 607f6a0..a01f714 100755
--- a/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml
+++ b/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml
@@ -684,6 +684,7 @@ add 16M 16_9
</string-array>
<!-- Default antibanding setting.-->
<string-array name="pref_camera_antibanding_default_array" translatable="false">
+ <item>60hz</item>
<item>auto</item>
<item>off</item>
<item>50hz</item>
八:檔案管理改變可用空間到4.16G和總容量8G
(vendor/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java)
diff --git a/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java b/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
index 47b8813..ccceac6 100644
--- a/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
+++ b/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
@@ -47,7 +47,7 @@ import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.mediatek.filemanager.service.FileManagerService;
import com.mediatek.filemanager.utils.FileUtils;
import com.mediatek.filemanager.utils.LogUtils;
@@ -319,8 +319,10 @@ public class FileInfoAdapter extends BaseAdapter {
if (fileInfo.isDirectory()) {
if (MountPointManager.getInstance().isMountPoint(fileInfo.getFileAbsolutePath())) {
StringBuilder sb = new StringBuilder();
- String freeSpaceString = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()));
- String totalSpaces = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));
+ //String freeSpaceString = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()));
+ String freeSpaceString = "4.16 GB";
+ //String totalSpaces = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));
+ String totalSpaces = "8.00 GB";
LogUtils.d(TAG, "setSizeText, file name = " + fileInfo.getFileName()
+ ",file path = " + fileInfo.getFileAbsolutePath());
LogUtils.d(TAG, "setSizeText, freeSpace = " + MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()) + ",totalSpace = "
九:添加記憶體資訊
(vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java)
diff --git a/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java b/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java
index 4a1252a..ffdfd0d 100755
--- a/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java
+++ b/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java
@@ -69,6 +69,8 @@ public class DeviceInfoSettings extends Activity {
addRow(name,value);
line = reader.readLine();
}
+ addRow("RAM:","KINGSTON 1GB");
+ addRow("ROM:","KINGSTON 8GB");
}
reader.close();
十:預設浏覽器--------本地浏覽器設為預設浏覽,打開連結(消費提示音等)不會彈出選擇浏覽器提示框,預設搜尋引擎----Google
(frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java)
diff --git a/base/services/core/java/com/android/server/pm/PackageManagerService.java b/base/services/core/java/com/android/server/pm/PackageManagerService.java
index bf86b54..f640a8b 100644
--- a/base/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/base/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -2632,11 +2632,55 @@ public class PackageManagerService extends IPackageManager.Stub {
// are all flushed. Not really needed, but keeps things nice and
// tidy.
Runtime.getRuntime().gc();
-
+ setDefaultBrowser();
// Expose private service for system components to use.
LocalServices.addService(PackageManagerInternal.class, new PackageManagerInternalImpl());
}
+ private final void setDefaultBrowser(){
+ Log.d("debug_default","setDefaultBrowser is called.");
+ if(!isFirstBoot()) {
+ Log.d("debug_default","not first boot, return");
+ return;
+ }
+ String str1 = "android.intent.category.DEFAULT";
+ String str2 = "android.intent.category.BROWSABLE";
+ String str3 = "android.intent.action.VIEW";
+ //intent filter
+ IntentFilter filter = new IntentFilter(str3);
+ filter.addCategory(str1);
+ filter.addCategory(str2);
+ filter.addDataScheme("http");
+ //intent
+ Intent intent = new Intent(str3);
+ intent.addCategory(str2);
+ intent.addCategory(str1);
+ Uri uri = Uri.parse("http://");
+ intent.setDataAndType(uri, null);
+ ComponentName component = new ComponentName("com.android.browser","com.android.browser.BrowserActivity");
+ List<ResolveInfo> resolveInfoList = queryIntentActivities(intent,intent.getType(),PackageManager.GET_INTENT_FILTERS, 0);
+ int size = resolveInfoList.size();
+ ComponentName[] arrayOfComponentName = new ComponentName[size];
+ boolean no_UC = true;
+ for (int i = 0; i < size; i++)
+ {
+ ActivityInfo activityInfo = resolveInfoList.get(i).activityInfo;
+ String packageName = activityInfo.packageName;
+ String className = activityInfo.name;
+ if (packageName.equals("com.android.browser")) no_UC = false;
+ ComponentName componentName = new ComponentName(packageName, className);
+ arrayOfComponentName[i] = componentName;
+ }
+ if (no_UC){
+ Log.d("debug_default","no uc package");
+ return;
+ }else{
+ Log.d("debug_default","uc package is in, set it as Preferred.");
+ }
+ addPreferredActivity2(filter,IntentFilter.MATCH_CATEGORY_SCHEME, arrayOfComponentName,component);
+ Log.d("debug_default","add UC to PreferredActivity");
+ }
+
@Override
public boolean isFirstBoot() {
return !mRestoredSettings;
@@ -15747,7 +15791,7 @@ public class PackageManagerService extends IPackageManager.Stub {
synchronized (mPackages) {
filter.dump(new LogPrinter(Log.INFO, TAG), " ");
mSettings.editPreferredActivitiesLPw(0).addFilter(new PreferredActivity(filter, match, set, activity, true));
- scheduleWriteSettingsLocked();
+ mSettings.writePackageRestrictionsLPr(0);
}
}
// End of
十一:浏覽器正下載下傳時,點選取消或者中止下載下傳,需要彈出警告:Are you sure to delete it?/¿estás seguro para eliminarlo?
(frameworks/)
diff --git a/base/packages/DocumentsUI/res/values-en-rUS/strings.xml b/base/packages/DocumentsUI/res/values-en-rUS/strings.xml
index 1170162..e4c52af 100755
--- a/base/packages/DocumentsUI/res/values-en-rUS/strings.xml
+++ b/base/packages/DocumentsUI/res/values-en-rUS/strings.xml
@@ -103,4 +103,8 @@
<string name="menu_advanced_hide" product="default">Hide SD card</string>
<string name="menu_file_size_show">Show file size</string>
<string name="menu_file_size_hide">Hide file size</string>
-</resources>
\ No newline at end of file
+ <string name="custom_tips">"Tips"</string>
+ <string name="message">"Are you sure to delete it?"</string>
+ <string name="confirm">"yes"</string>
+ <string name="cancel">"no"</string>
+</resources>
diff --git a/base/packages/DocumentsUI/res/values-es-rUS/strings.xml b/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
index 12a62ea..932d5bb 100644
--- a/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
+++ b/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
@@ -16,6 +16,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="custom_tips">"Consejos"</string>
+ <string name="message">"¿estás seguro para eliminarlo?"</string>
+ <string name="confirm">"si"</string>
+ <string name="cancel">"no"</string>
<string name="app_label" msgid="2783841764617238354">"Documentos"</string>
<string name="title_open" msgid="4353228937663917801">"Abrir desde"</string>
<string name="title_save" msgid="2433679664882857999">"Guardar en"</string>
diff --git a/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
index 643921c..8b6bff2 100644
--- a/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
+++ b/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
@@ -16,6 +16,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="custom_tips">"提示"</string>
+ <string name="message">"您确定要删除嗎?"</string>
+ <string name="confirm">"删除"</string>
+ <string name="cancel">"取消"</string>
<string name="app_label" msgid="2783841764617238354">"文檔"</string>
<string name="title_open" msgid="4353228937663917801">"打開檔案"</string>
<string name="title_save" msgid="2433679664882857999">"儲存檔案"</string>
diff --git a/base/packages/DocumentsUI/res/values/strings.xml b/base/packages/DocumentsUI/res/values/strings.xml
index 23c61fa..fcfa7ab 100755
--- a/base/packages/DocumentsUI/res/values/strings.xml
+++ b/base/packages/DocumentsUI/res/values/strings.xml
@@ -137,4 +137,8 @@
<string name="retry">Retry</string>
<!-- Contents of the copying failure alert dialog. [CHAR LIMIT=48] -->
<string name="copy_failure_alert_content">These files weren\'t copied: <xliff:g id="list">%1$s</xliff:g></string>
+ <string name="custom_tips">Tips</string>
+ <string name="message">Are you sure to delete it?</string>
+ <string name="confirm">yes</string>
+ <string name="cancel">no</string>
</resources>
diff --git a/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
index 9ae6e29..540f459 100755
--- a/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
+++ b/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
@@ -36,6 +36,7 @@ import static com.android.documentsui.model.DocumentInfo.getCursorString;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
+import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
@@ -45,6 +46,7 @@ import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.Loader;
import android.content.res.Resources;
@@ -107,6 +109,7 @@ import com.mediatek.common.documentsui.IDocumentsUIExtension;
/// M: Add to support drm
import com.mediatek.drm.OmaDrmStore;
import com.mediatek.drm.OmaDrmUtils;
+import android.widget.Toast;
/**
* Display the documents inside a single directory.
@@ -633,10 +636,12 @@ public class DirectoryFragment extends Fragment {
return true;
}
+ private ArrayList<DocumentInfo> docs;
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
final SparseBooleanArray checked = mCurrentView.getCheckedItemPositions();
- final ArrayList<DocumentInfo> docs = Lists.newArrayList();
+ //final ArrayList<DocumentInfo> docs = Lists.newArrayList();
+ docs = Lists.newArrayList();
final int size = checked.size();
final int id = item.getItemId();
for (int i = 0; i < size; i++) {
@@ -685,10 +690,11 @@ public class DirectoryFragment extends Fragment {
} else if (id == R.id.menu_delete) {
/// M: remove state @{
- final State state = getDisplayState(DirectoryFragment.this);
- state.dirState.remove(mStateKey);
+ // final State state = getDisplayState(DirectoryFragment.this);
+ // state.dirState.remove(mStateKey);
/// @}
- onDeleteDocuments(docs);
+ deleteDialog();
+ // onDeleteDocuments(docs);
mode.finish();
return true;
@@ -709,7 +715,24 @@ public class DirectoryFragment extends Fragment {
return false;
}
}
-
+ private void deleteDialog(){
+ new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.custom_tips)
+ .setMessage(R.string.message)
+ .setPositiveButton(R.string.confirm,
+ new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface arg0, int arg1) {
+ // TODO Auto-generated method stub
+ final State state = getDisplayState(DirectoryFragment.this);
+ state.dirState.remove(mStateKey);
+ onDeleteDocuments(docs);
+ }
+ })
+ .setNegativeButton(R.string.cancel,null).show();
+
+ }
@Override
public void onDestroyActionMode(ActionMode mode) {
/// M: restore action mode @{
十二:改關機時間長短
(frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java)
diff --git a/base/services/core/java/com/android/server/power/ShutdownThread.java b/base/services/core/java/com/android/server/power/ShutdownThread.java
index 710bcc2..9f8be2e 100644
--- a/base/services/core/java/com/android/server/power/ShutdownThread.java
+++ b/base/services/core/java/com/android/server/power/ShutdownThread.java
@@ -143,7 +143,7 @@ public final class ShutdownThread extends Thread {
private static int mShutdownFlow;
// Shutdown Animation
- private static final int MIN_SHUTDOWN_ANIMATION_PLAY_TIME = 5 * 1000;
+ private static final int MIN_SHUTDOWN_ANIMATION_PLAY_TIME = 10 * 1000;
// CU/CMCC operator require 3-5s
private static long beginAnimationTime = 0;
private static long endAnimationTime = 0;
@@ -159,7 +159,7 @@ public final class ShutdownThread extends Thread {
* 2: bypass radio off
* 3: bypass both
* */
-
+ private static int screen_turn_off_time = 10 * 1000;
private static final boolean mSpew = true; //debug enable
private static IBootAnimExt mIBootAnim = null; // for boot animation
@@ -526,7 +526,7 @@ public final class ShutdownThread extends Thread {
beginAnimationTime = 0;
boolean mShutOffAnimation = configShutdownAnimation(context);
- int screenTurnOffTime = getScreenTurnOffTime(context);
+ int screenTurnOffTime = screen_turn_off_time;
synchronized (mEnableAnimatingSync) {
if (mEnableAnimating) {
if (mShutOffAnimation) {
十三:wifi熱點上限數
(frameworks/base/core/java/android/provider/Settings.java)
diff --git a/base/core/java/android/provider/Settings.java b/base/core/java/android/provider/Settings.java
index 4169d8c..78c167d 100644
--- a/base/core/java/android/provider/Settings.java
+++ b/base/core/java/android/provider/Settings.java
@@ -3528,7 +3528,7 @@ public final class Settings {
* Wifi hotspot default client number
* @hide
*/
- public static final int WIFI_HOTSPOT_DEFAULT_CLIENT_NUM = 6;
+ public static final int WIFI_HOTSPOT_DEFAULT_CLIENT_NUM = 5;
/**
* The max client num of hotspot
十四:預設打開CB(小區廣播)消息
(modems/lwtg/custom/service/nvram/nvram_cust_pack.c)
diff --git a/lwtg/custom/service/nvram/nvram_cust_pack.c b/lwtg/custom/service/nvram/nvram_cust_pack.c
index fd1f347..9d9ad3a 100644
--- a/lwtg/custom/service/nvram/nvram_cust_pack.c
+++ b/lwtg/custom/service/nvram/nvram_cust_pack.c
@@ -1016,7 +1016,7 @@ kal_uint8 const COMMON_NVRAM_EF_SMSAL_COMMON_PARAM_DEFAULT[] =
#ifdef __UE_SIMULATOR__
0x01, 0x01, /* CB setting - ON */
#else
- 0x00, 0x01, /* CB setting */
+ 0x01, 0x01, /* CB setting */
#endif
0xFF, /* AT default profile ID.0xFF:invalid profile ID and SMSAL auto select profile id */
0x00, /* First Octet */
十五: 進入工程模式,進入 "*#*#3646633#*#*"-->engineer mode---->Telephony---》Fast Dormancy--》ConfigFD--》預設選擇第三項(Turn on R8 FD&Turn off Legacy FD)。(如附件 是在MTK平台下)

(modems/lwtg/custom/service/nvram/nvram_data_items.c)
diff --git a/lwtg/custom/service/nvram/nvram_data_items.c b/lwtg/custom/service/nvram/nvram_data_items.c
index c8ba4d6..bcb406c 100644
--- a/lwtg/custom/service/nvram/nvram_data_items.c
+++ b/lwtg/custom/service/nvram/nvram_data_items.c
@@ -3393,6 +3393,7 @@ typedef enum
* Define necessary default values for each logical data item.
*/
+static kal_uint8 const NVRAM_EF_PS_CONFORMANCE_TESTMODE_REVISE_DEFAULT[] ={ 0x00, 0x00, 0x40, 0x00 };
kal_uint8 const NVRAM_EF_ZERO_DEFAULT[] = { 0x00 };
kal_uint8 const NVRAM_EF_FF_DEFAULT[] = { 0xFF };
@@ -10685,7 +10686,7 @@ ltable_entry_struct logical_data_item_table_core[] =
#ifdef __UE_SIMULATOR__
NVRAM_NORMAL(NVRAM_EF_PS_CONFORMANCE_TESTMODE_DEFAULT),
#else
- NVRAM_NORMAL(NVRAM_EF_ZERO_DEFAULT),
+ NVRAM_NORMAL(NVRAM_EF_PS_CONFORMANCE_TESTMODE_REVISE_DEFAULT),
#endif
NVRAM_CATEGORY_USER,
NVRAM_ATTR_AVERAGE,
diff --git a/lwtg/interface/service/nvram/nvram_editor_data_item.h b/lwtg/interface/service/nvram/nvram_editor_data_item.h
index 6bca59b..f69ff68 100644
--- a/lwtg/interface/service/nvram/nvram_editor_data_item.h
+++ b/lwtg/interface/service/nvram/nvram_editor_data_item.h
@@ -2776,7 +2776,7 @@
#endif
-#define NVRAM_EF_PS_CONFORMANCE_TESTMODE_LID_VERNO "000"
+#define NVRAM_EF_PS_CONFORMANCE_TESTMODE_LID_VERNO "001"
#define NVRAM_EF_MOBILE_BROADBAND_PROVISION_CONTEXT_LID_VERNO "000" //__MOBILE_BROADBAND_PROVISION_CONTEXT__
#define NVRAM_EF_MSQ_LIST_LID_VERNO "001" //__MEDIATEK_SMART_QOS__ (MSQ)
十六: 通訊錄建立聯系人預設儲存在sim卡(點選建立,彈出兩個選項sim,phone,預設選sim)
(packages/apps/Contacts/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java)
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index 00d1fbc..6e4c882 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -135,21 +135,19 @@ public class ContactEditorAccountsChangedActivity extends Activity {
if (numAccounts >= 2) {
// When the user has 2+ writable accounts, show a list of accounts so the user can pick
// which account to create a contact in.
- setContentView(R.layout.contact_editor_accounts_changed_activity_with_picker);
-
- final TextView textView = (TextView) findViewById(R.id.text);
/// M:
- textView.setText(getString(R.string.store_contact_to));
-
- final Button button = (Button) findViewById(R.id.add_account_button);
- button.setText(getString(R.string.add_new_account));
- button.setOnClickListener(mAddAccountClickListener);
-
- final ListView accountListView = (ListView) findViewById(R.id.account_list);
mAccountListAdapter = new AccountsListAdapter(this,
AccountListFilter.ACCOUNTS_CONTACT_WRITABLE);
- accountListView.setAdapter(mAccountListAdapter);
- accountListView.setOnItemClickListener(mAccountListItemClickListener);
+ String accountType = mAccountListAdapter.getItem(0).type.toString();
+ if (AccountTypeUtils.isAccountTypeIccCard(accountType)) {
+ AccountWithDataSet ads = mAccountListAdapter.getItem(0);
+
+ mSubId = SubInfoUtils.getInvalidSubId();
+ if (ads instanceof AccountWithDataSetEx) {
+ mSubId = ((AccountWithDataSetEx) ads).getSubId();
+ }
+ checkPHBStateAndSaveAccount(0);
+ }
} else if (numAccounts == 1) {
// If the user has 1 writable account we will just show the user a message with 2
// possible action buttons.
十七:第一次開機是如果無sim卡加提示
(packages/apps/Launcher3/)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 73f01e2..0b12bea 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -64,6 +64,7 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS" />
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 8a0ce6a..b959c93 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -33,7 +33,9 @@ import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityOptions;
+import android.app.Dialog;
import android.app.AlertDialog;
+import android.app.AlertDialog.Builder;
import android.app.SearchManager;
import android.app.Service;
import android.appwidget.AppWidgetHostView;
@@ -102,6 +104,7 @@ import android.view.animation.OvershootInterpolator;
import android.view.inputmethod.InputMethodManager;
import android.widget.Advanceable;
import android.widget.FrameLayout;
+import android.telephony.TelephonyManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -498,6 +501,7 @@ public class Launcher extends Activity
///M.
private String mCurrentQsbPkgName;
+ private TelephonyManager telMgr;
+ private int first_boot = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -522,6 +526,17 @@ public class Launcher extends Activity
super.onCreate(savedInstanceState);
+ if(first_boot == 0){
+ telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
+ Log.i("rmy", "telMgr()="+telMgr.getSimState());
+ if (telMgr.getSimState() == telMgr.SIM_STATE_READY) {
+ Log.i("rmy", "良好");
+ } else if (telMgr.getSimState() == telMgr.SIM_STATE_ABSENT) {
+ Log.i("rmy", "無SIM卡");
+ checkSimDialog(this);
+ } else {
+ Log.i("rmy", "SIM卡被鎖定或未知的狀态");
+ }
+ }
LauncherAppState.setApplicationContext(getApplicationContext());
LauncherAppState app = LauncherAppState.getInstance();
@@ -649,6 +664,21 @@ public class Launcher extends Activity
}
}
+ private void checkSimDialog(final Context context) {
+ AlertDialog.Builder simDialog = new AlertDialog.Builder(context);
+ simDialog.setTitle("Preguntar");
+ simDialog.setMessage("SIM invalida");
+ simDialog.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ }
+ });
+ AlertDialog dialog = simDialog.create();
+ dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+ dialog.show();
+ }
+
@Override
public void onSettingsChanged(String settings, boolean value) {
if (Utilities.ALLOW_ROTATION_PREFERENCE_KEY.equals(settings)) {
十八: wifi要内置兩個名字分别為MOVISTAR WIFI and VIVO-WIFI 的無線網。安全類型為802.1XEAP.密碼為空。 類似使用者進入wifi界面,手機建立一個wifi後的效果。如附件圖檔
(packages/apps/Settings/)
diff --git a/src/com/android/settings/net/DataUsageMeteredSettings.java b/src/com/android/settings/net/DataUsageMeteredSettings.java
index ec1dd38..56ab5e8 100644
--- a/src/com/android/settings/net/DataUsageMeteredSettings.java
+++ b/src/com/android/settings/net/DataUsageMeteredSettings.java
@@ -118,6 +118,11 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
final NetworkTemplate template = NetworkTemplate.buildTemplateWifi(networkId);
final MeteredPreference pref = new MeteredPreference(context, template);
pref.setTitle(removeDoubleQuotes(networkId));
+ if (networkId.contains("MOVISTAR WIFI")) {
+ pref.setTitle("MOVISTAR WIFI");
+ } else if (networkId.contains("VIVO WIFI")) {
+ pref.setTitle("VIVO WIFI");
+ }
return pref;
}
@@ -207,6 +212,11 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
data = new SearchIndexableRaw(context);
data.title = removeDoubleQuotes(networkId);
+ if (networkId.contains("MOVISTAR WIFI")) {
+ data.title = "MOVISTAR WIFI";
+ } else if (networkId.contains("VIVO WIFI")) {
+ data.title = "VIVO WIFI";
+ }
data.screenTitle = res.getString(R.string.data_usage_menu_metered);
result.add(data);
}
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 8a241be..e91613c 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -328,6 +328,10 @@ public class WifiConfigController implements TextWatcher,
}
if (mAccessPoint.isSaved() || mAccessPoint.isActive()) {
mConfigUi.setForgetButton(res.getString(R.string.wifi_forget));
+ if (!mAccessPoint.toString().contains("MOVISTAR WIFI")
+ && !mAccessPoint.toString().contains("VIVO WIFI")) {
+ mConfigUi.setForgetButton(res.getString(R.string.wifi_forget));
+ }
}
}
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 03ab864..c0eb2d1 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -758,7 +758,8 @@ public class WifiSettings extends RestrictedSettingsFragment
int index = 0;
for (AccessPoint accessPoint : accessPoints) {
// Ignore access points that are out of range.
- if (accessPoint.getLevel() != -1) {
+ if (accessPoint.getLevel() != -1 || accessPoint.toString().contains("MOVISTAR WIFI")
+ || accessPoint.toString().contains("VIVO WIFI")) {
hasAvailableAccessPoints = true;
if (accessPoint.getTag() != null) {
final Preference pref = (Preference) accessPoint.getTag();
(vendor/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf)
diff --git a/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf b/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf
index f6b7121..4d5d52b 100644
--- a/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf
+++ b/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf
@@ -1,3 +1,20 @@
p2p_no_group_iface=1
driver_param=use_p2p_group_interface=1
wowlan_triggers=disconnect
+overlay_loaded=1
+network={
+ ssid="MOVISTAR WIFI"
+ key_mgmt=WPA-EAP IEEE8021X
+ eap=SIM
+ disabled=1
+ priority=1
+ read_only=1
+ }
+network={
+ ssid="VIVO WIFI"
+ key_mgmt=WPA-EAP IEEE8021X
+ eap=SIM
+ disabled=1
+ priority=1
+ read_only=1
+ }
十九: 主菜單--》設定--》語言和輸入法--》Android keyboard 右邊的設定圖示---》show correction suggestions--》改成預設選中always hide
(packages/inputmethods/)
diff --git a/LatinIME/java/res/xml/prefs_screen_correction.xml b/LatinIME/java/res/xml/prefs_screen_correction.xml
index a943dc1..1653b0f 100644
--- a/LatinIME/java/res/xml/prefs_screen_correction.xml
+++ b/LatinIME/java/res/xml/prefs_screen_correction.xml
@@ -51,7 +51,7 @@
android:key="show_suggestions"
android:summary="@string/prefs_show_suggestions_summary"
android:title="@string/prefs_show_suggestions"
- android:defaultValue="true"
+ android:defaultValue="false"
android:persistent="true" />
<CheckBoxPreference
android:key="pref_key_use_personalized_dicts"
diff --git a/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index 1833cfb..748e424 100755
--- a/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -312,7 +312,7 @@ public class SettingsValues {
.putBoolean(Settings.PREF_SHOW_SUGGESTIONS, !alwaysHide)
.apply();
}
- return prefs.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
+ return prefs.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, false);
}
private static boolean readBigramPredictionEnabled(final SharedPreferences prefs,
二十:浏覽器下載下傳的檔案, 預設儲存在”Downloads“名字的檔案夾
(vendor/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java)
diff --git a/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java b/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java
index 475bbb8..02dc88c 100755
--- a/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java
+++ b/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java
@@ -21,7 +21,7 @@ public class DefaultBrowserSettingExt implements IBrowserSettingExt {
private static final String TAG = "DefaultBrowserSettingsExt";
private static final String DEFAULT_DOWNLOAD_DIRECTORY = "/storage/sdcard0/MyFavorite";
- private static final String DEFAULT_MY_FAVORITE_FOLDER = "/MyFavorite";
+ private static final String DEFAULT_MY_FAVORITE_FOLDER = "/Download";
private static final String PREF_SEARCH_ENGINE = "search_engine";
private static final String DEFAULT_SEARCH_ENGIN = "google";
二十一:UA string 需要加上項目名Gomoible GO1003 (根據具體的項目名稱修改),檢視的網址為:whatsmyuseragent.com
(vendor/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java)
diff --git a/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java b/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
index 5079bc1..561329f 100755
--- a/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
+++ b/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
@@ -363,7 +363,7 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
sBrowserSettingExt = Extensions.getSettingPlugin(mContext);
sBrowserSettingExt.setStandardFontFamily(settings, mPrefs);
- String ua = mCustomUserAgents.get(settings);
+ String ua = "Mozilla/5.0 (Linux; Android 6.0; GOMOBILE GO1003 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36";
if (ua != null) {
settings.setUserAgentString(ua);
} else {
二十二: 添加通道( 50,919,921,4370),通道号和名字都設為 50,919,921,4370。(通道-channel(英文)-canal(西班牙語)),預設都是enable的,并且預設可以接受所有語言的。
(packages/providers/)
diff --git a/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java b/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java
index 3d7ac48..c32acf5 100755
--- a/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java
+++ b/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java
@@ -134,8 +134,10 @@ public class CbProvider extends ContentProvider {
// break;
case URL_CHANNEL:
qb.setTables(CbDatabaseHelper.CHANNEL_TABLE);
+ if (selection == null || !selection.contains("sub_id")) {
qb.appendWhere("(sub_id = " + SmsProvider.getSubIdFromUri(url)
+ ")");
+ }
break;
case URL_CONVERSATION:
// qb.setTables(CbDatabaseHelper.CONVERSATION_TABLE);
(vendor/ )
diff --git a/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml b/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml
index 1e224e1..cdb7bce 100755
--- a/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml
+++ b/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml
@@ -88,6 +88,7 @@
<!-- rcs -->
<uses-permission android:name="com.cmcc.ccs.READ_CCS_MESSAGE"/>
<uses-permission android:name="com.cmcc.ccs.WRITE_CCS_MESSAGE"/>
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application android:name="MmsApp"
android:label="@string/app_label"
@@ -111,6 +112,9 @@
<service android:name="com.mediatek.cb.cbmsg.CBMessageReceiverService"
android:exported="false" />
+ <service android:name="com.mediatek.cb.cbmsg.CellBroadcastAlertAudio"
+ android:exported="false" />
+
<service android:name="com.mediatek.omacp.OMACPReceiverService"
android:exported="false" />
@@ -534,6 +538,12 @@ add for MClock update sms database
<intent-filter>
<action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
</intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.SIM_STATE_CHANGED" />
+ </intent-filter>
</receiver>
<!-- Catch-all receiver for broadcasts that don't have associated security -->
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ConversationListItem.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ConversationListItem.java
index a30251a..9b25f26 100644
--- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ConversationListItem.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ConversationListItem.java
@@ -558,7 +558,7 @@ public class ConversationListItem extends RelativeLayout implements Contact.Upda
.getString(R.string.cb_default_channel_name);
}
try {
- from = name + "(" + channelId + ")";
+ from = name;
} catch (NumberFormatException e) {
MmsLog.e(TAG, "format recipient number error!");
}
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageListActivity.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageListActivity.java
index 3871434..57aa812 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageListActivity.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageListActivity.java
@@ -369,8 +369,7 @@ public class CBMessageListActivity extends Activity implements DraftCache.OnDraf
.getString(R.string.cb_default_channel_name));
} else {
actionBar.setTitle(MmsApp.getApplication().getApplicationContext()
- .getString(R.string.cb_default_channel_name)
- + "(" + mConversation.getRecipients().get(0).getNumber() + ")");
+ .getString(R.string.cb_default_channel_name));
}
default:
@@ -402,8 +401,7 @@ public class CBMessageListActivity extends Activity implements DraftCache.OnDraf
ActionBar actionBar = getActionBar();
actionBar.setTitle(MmsApp.getApplication().getApplicationContext().getString(
- R.string.cb_default_channel_name)
- + "(" + mConversation.getRecipients().get(0).getNumber() + ")");
+ R.string.cb_default_channel_name));
actionBar.setDisplayHomeAsUpEnabled(true);
// We used to refresh the DraftCache here, but
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiver.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiver.java
index 7415026..816a1f5 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiver.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiver.java
@@ -64,6 +64,8 @@ import com.android.mms.MmsApp;
import com.android.mms.util.MmsLog;
import com.mediatek.mms.util.PermissionCheckUtil;
+import com.android.internal.telephony.TelephonyIntents;
+
/**
* M:
* Handle incoming SMSes. Just dispatches the work off to a Service.
@@ -98,7 +100,14 @@ public class CBMessageReceiver extends BroadcastReceiver {
+ intent.getAction() + ", result = " + getResultCode());
intent.setClass(context, CBMessageReceiverService.class);
+/*
intent.putExtra("result", getResultCode());
+ */
+ android.util.Log.d(" CBMessageReceiver ", " CBMessageReceiver.onReceiveWithPrivilege 97 ");
+ if (!TelephonyIntents.ACTION_SIM_STATE_CHANGED.equals(intent.getAction())) {
+ intent.putExtra("result", getResultCode());
+ }
+// End of
beginStartingService(context, intent);
}
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiverService.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiverService.java
index d3251c7..1e883cc 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiverService.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiverService.java
@@ -81,6 +81,24 @@ import com.mediatek.mms.ext.IOpCBMessageReceiverServiceExt;
import com.mediatek.opmsg.util.OpMessageUtils;
import android.telephony.SubscriptionManager;
+import com.mediatek.mms.util.MmsDialogNotifyUtils;
+/*
+ */
+import android.provider.Telephony;
+import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.util.Log;
+import com.android.internal.telephony.IccCardConstants;
+import com.android.internal.telephony.TelephonyIntents;
+import android.telephony.SmsManager;
+import android.provider.Telephony.Sms.Intents;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.view.WindowManager;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+// End of Vanzo:tanglei
/**
* M:
@@ -97,6 +115,19 @@ public class CBMessageReceiverService extends Service {
private static final Uri MESSAGE_URI = Telephony.SmsCb.CONTENT_URI;
private static final int DEFAULT_SUB_ID = 1;
+/*
+ */
+ private static final int MESSAGE_SET_STATE = 33;
+ private static final int MESSAGE_SET_CONFIG = 32;
+ private static final String KEYID = "_id";
+ private static final String NAME = "name";
+ private static final String NUMBER = "number";
+ private static final String ENABLE = "enable";
+ private static final String SUBID = "sub_id";
+ private static final Uri CHANNEL_URI = Uri.parse("content://cb/channel");
+ private static final int EVENT_RETRY_ADD_CHANNEL_TIME_OUT = 101;
+ private static boolean isAddingDefaultChannel = false;
+// End of
public Handler mToastHandler = new Handler() {
@Override
@@ -159,6 +190,7 @@ public class CBMessageReceiverService extends Service {
public void handleMessage(Message msg) {
int serviceId = msg.arg1;
Intent intent = (Intent) msg.obj;
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.ServiceHandler.handleMessage 185 serviceId="+serviceId+" msg.what="+msg.what+" intent="+intent); // modify by mtk_debug 2015-3-19;
if (intent != null) {
String action = intent.getAction();
// NEED Replace with CB ACTION
@@ -166,12 +198,266 @@ public class CBMessageReceiverService extends Service {
handleCBMessageReceived(intent);
}
}
+
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.ServiceHandler.handleMessage 162 "); // modify by mtk_debug 2015-3-05;
+ if(TelephonyIntents.ACTION_SIM_STATE_CHANGED.equals(intent.getAction())){
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.ServiceHandler.handleMessage receiver a ACTION_SIM_STATE_CHANGED 164 "); // modify by mtk_debug 2015-3-05;
+ synchronized(this){
+ handleSIMStateChangedReceived(intent);
+ }
+ }
// NOTE: We MUST not call stopSelf() directly, since we need to
// make sure the wake lock acquired by AlertReceiver is released.
- CBMessageReceiver.finishStartingService(CBMessageReceiverService.this, serviceId);
+ if(!isAddingDefaultChannel){
+ CBMessageReceiver.finishStartingService(CBMessageReceiverService.this, serviceId);
+ }
}
}
+/*
+ */
+ private void handleSIMStateChangedReceived(Intent intent) {
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived 191 "); // modify by mtk_debug 2015-3-05;
+ int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ String stateExtra = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
+ // boolean stateExtra = intent.getBooleanExtra("ready",false);
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived 214 stateExtra="+stateExtra);
+ if(IccCardConstants.INTENT_VALUE_ICC_READY.equals(stateExtra)){
+ // if(stateExtra){
+ if(queryIfChannelInDatabase(subId,"919",919))
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
+ isAddingDefaultChannel=false;
+ }else{
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
+ if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*這裡會先把CB打開*/
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
+ addCustomChanneltoList(subId,"919",919);
+ isAddingDefaultChannel=false;
+
+ //請注意:如果貴司做了開機預設關閉小區廣播的feature,請取消下面這句code的注釋
+ //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于關閉小區廣播開關
+
+ }else{
+
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
+ //add retry
+ if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
+ Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
+ mServiceHandler.sendMessageDelayed(msg, 2000);
+ isAddingDefaultChannel=true;
+ }
+
+
+ }
+
+ }
+ if(queryIfChannelInDatabase(subId,"50",50))
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
+ isAddingDefaultChannel=false;
+ }else{
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
+ if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*這裡會先把CB打開*/
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
+ addCustomChanneltoList(subId,"50",50);
+ isAddingDefaultChannel=false;
+
+ //請注意:如果貴司做了開機預設關閉小區廣播的feature,請取消下面這句code的注釋
+ //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于關閉小區廣播開關
+
+ }else{
+
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
+ //add retry
+ if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
+ Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
+ mServiceHandler.sendMessageDelayed(msg, 2000);
+ isAddingDefaultChannel=true;
+ }
+
+
+ }
+
+ }
+ if(queryIfChannelInDatabase(subId,"4370",4370))
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
+ isAddingDefaultChannel=false;
+ }else{
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
+ if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*這裡會先把CB打開*/
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
+ addCustomChanneltoList(subId,"4370",4370);
+ isAddingDefaultChannel=false;
+
+ //請注意:如果貴司做了開機預設關閉小區廣播的feature,請取消下面這句code的注釋
+ //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于關閉小區廣播開關
+
+ }else{
+
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
+ //add retry
+ if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
+ Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
+ mServiceHandler.sendMessageDelayed(msg, 2000);
+ isAddingDefaultChannel=true;
+ }
+
+
+ }
+
+ }
+ if(queryIfChannelInDatabase(subId,"921",921))
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
+ isAddingDefaultChannel=false;
+ }else{
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
+ if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*這裡會先把CB打開*/
+ {
+ Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
+ addCustomChanneltoList(subId,"921",921);
+ isAddingDefaultChannel=false;
+
+ //請注意:如果貴司做了開機預設關閉小區廣播的feature,請取消下面這句code的注釋
+ //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于關閉小區廣播開關
+
+ }else{
+
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
+ //add retry
+ if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
+ Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
+ mServiceHandler.sendMessageDelayed(msg, 2000);
+ isAddingDefaultChannel=true;
+ }
+
+
+ }
+
+ }
+
+ }
+
+ }
+
+ private void addCustomChanneltoList(int mSubId,String channelName,int channelNum){
+ Log.d(TAG, "addCustomChanneltoList: mSubId=" + mSubId
+ + ", channelName= " + channelName + ", channelNum= " + channelNum);
+
+ SmsBroadcastConfigInfo[] objectList = new SmsBroadcastConfigInfo[1];
+ objectList[0] = new SmsBroadcastConfigInfo(channelNum,channelNum, -1, -1, true);
+
+ Log.d(TAG, "addCustomChanneltoList: setCellBroadcastSmsConfig");
+ //SmsManagerEx.getDefault().setCellBroadcastSmsConfig(objectList, objectList, mSimId);
+ boolean isSetConfigSuccess = SmsManager.getSmsManagerForSubscriptionId(mSubId).setCellBroadcastSmsConfig(objectList, objectList);
+ if(isSetConfigSuccess){
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.addCustomChanneltoList set channel " +channelNum +" success 784 "); // modify by mtk_debug 2015-3-05;
+ addChannelToDatabase(mSubId,channelName,channelNum);
+ }else{
+ Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.addCustomChanneltoList set channel "+ channelNum +" failed 786 "); // modify by mtk_debug 2015-3-05;
+ }
+
+
+ Log.d(TAG, " CBMessageReceiverService addCustomChanneltoList: function end");
+ }
+
+
+
+ private boolean addChannelToDatabase(int mSubId,String channelName,int channelNum){
+ // ClearChannel();
+ Log.d(TAG, "addChannelToDatabase: mSubId=" + mSubId
+ + ", channelName= " + channelName + ", channelNum= " + channelNum);
+ String[] projection = new String[] { NUMBER, SUBID};
+ String SELECTIONNum = "(" + NUMBER + " = " + channelNum + ")";
+ String SELECTIONid = "(" + SUBID + " = " + mSubId + ")";
+ Cursor cursornum = null;
+ Cursor cursorid = null;
+
+ Cursor cursorzz = this.getContentResolver().query(CHANNEL_URI,
+ projection,
+ NUMBER + " = ? AND " +
+ SUBID + " = ?",
+ new String[] {String.valueOf(channelNum), String.valueOf(mSubId)},
+ null);
+ Log.d(TAG, "addChannelToDatabase: cursor.getCount"+cursorzz.getCount());
+ if(cursorzz.getCount() == 0){//if ((cursornum.getCount() == 0)&&(cursorid.getCount() == 0)){
+ Log.d(" CBMessageReceiverService ", " SmsReceiverService.addChannelToDatabase add mSubId=" + mSubId
+ + ", channelName= " + channelName + ", channelNum= " + channelNum +"to database"); // modify by mtk_debug 2015-3-05;
+ ContentValues values = new ContentValues();
+ values.put(NAME,channelName);
+ values.put(NUMBER, channelNum);
+ values.put(ENABLE, true); //請注意:如果貴司希望預置的頻道預設為disable狀态,把true改成false即可
+ values.put(SUBID, mSubId);
+ try {
+ //if(mSimId==PhoneConstants.SUB1){
+ this.getContentResolver().insert(CHANNEL_URI, values);
+ //}else if(mSimId==PhoneConstants.SUB2){
+ // this.getContentResolver().insert(CHANNEL_URI1, values);
+ //}
+ } catch (Exception e){
+ Log.d(" CBMessageReceiverService ", " SmsReceiverService.addChannelToDatabase exception 828 "); // modify by mtk_debug 2015-3-05;
+ //cursornum.close();
+ //cursorid.close();
+ cursorzz.close();
+ return false;
+ }
+ //cursornum.close();
+ // cursorid.close();
+ cursorzz.close();
+ return true;
+ }
+ else{
+ //cursornum.close();
+ //cursorid.close();
+ cursorzz.close();
+ return false;
+ }
+
+ }
+
+
+ private boolean queryIfChannelInDatabase(int mSubId,String channelName,int channelNum){
+
+ Log.d(TAG, "queryIfChannelInDatabase: mSubId=" + mSubId
+ + ", channelName= " + channelName + ", channelNum= " + channelNum);
+ String[] projection = new String[] { NUMBER, SUBID};
+ String SELECTIONNum = "(" + NUMBER + " = " + channelNum + ")";
+ String SELECTIONid = "(" + SUBID + " = " + mSubId + ")";
+ Cursor cursornum = null;
+ Cursor cursorid = null;
+
+ Cursor cursorzz = this.getContentResolver().query(CHANNEL_URI,
+ projection,
+ NUMBER + " = ? AND " +
+ SUBID + " = ?",
+ new String[] {String.valueOf(channelNum),String.valueOf(mSubId)},
+ null);
+
+ if(cursorzz != null&&cursorzz.getCount() > 0){
+ //if ((cursornum.getCount() != 0)&&(cursorid.getCount() != 0)){
+ Log.d(TAG, "queryIfChannelInDatabase: cursor.getCount"+cursorzz.getCount());
+ cursorzz.close();
+ return true;
+
+
+ }else{
+ cursorzz.close();
+ Log.d(TAG, "queryIfChannelInDatabase: return false");
+ return false;
+ }
+
+ }
+// End of Vanzo:tanglei
+
private void handleCBMessageReceived(Intent intent) {
// TODO need replace with cb message.
Bundle extras = intent.getExtras();
@@ -200,7 +486,37 @@ public class CBMessageReceiverService extends Service {
}
if (messageUri != null) {
- CBMessagingNotification.updateNewMessageIndicator(subId, this, true);
+ if (message.getServiceCategory() == 919 ||
+ message.getServiceCategory() == 50 ||
+ message.getServiceCategory() == 921) {
+ //alert repeat with audio and vibrate
+ CellBroadcastAlertWakeLock.acquireScreenCpuWakeLock(this);
+ Intent audioIntent = new Intent(this, CellBroadcastAlertAudio.class);
+ audioIntent.setAction(CellBroadcastAlertAudio.ACTION_START_ALERT_AUDIO);
+ audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_DURATION_EXTRA, 10500);
+ audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_VIBRATE_EXTRA, true);
+ startService(audioIntent);
+ SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa. | dd/MM/yyyy");
+ String time = sdf.format(new Date(System.currentTimeMillis())).toString();
+ final Context sContext = getApplicationContext();
+ AlertDialog alert = new AlertDialog.Builder(sContext)
+ .setTitle("Alerta de Emergencia")
+ .setMessage(message.getMessageBody() + "\n\n" + time)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ sContext.stopService(new Intent(sContext, CellBroadcastAlertAudio.class));
+ dialog.dismiss();
+ }
+ })
+ .create();
+ alert.getWindow().setType(
+ WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+ alert.setCancelable(false);
+ alert.show();
+ } else {
+ CBMessagingNotification.updateNewMessageIndicator(subId, this, true);
+ }
}
}
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessagingNotification.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessagingNotification.java
index f9c161e..addf59d 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessagingNotification.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessagingNotification.java
@@ -268,7 +268,6 @@ public class CBMessagingNotification {
//String address = Conversation.getChannelNameFromId(context, channel_id);
String address;
address = CBMessage.getCBChannelName(subId, channelId);
- address = address + "(" + channelId + ")";
CBNotificationInfo info = getNewMessageNotificationInfo(
address, body, context, R.drawable.stat_notify_sms,
null, threadId, timeMillis, cursor.getCount(),
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertAudio.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertAudio.java
new file mode 100644
index 0000000..f868e44
--- /dev/null
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertAudio.java
@@ -0,0 +1,435 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.mediatek.cb.cbmsg;
+
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.Resources;
+import android.media.AudioManager;
+import android.media.MediaPlayer;
+import android.media.MediaPlayer.OnErrorListener;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.Vibrator;
+import android.speech.tts.TextToSpeech;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.ArrayList;
+import java.util.Locale;
+import com.android.mms.R;
+
+/**
+ * Manages alert audio and vibration and text-to-speech. Runs as a service so that
+ * it can continue to play if another activity overrides the CellBroadcastListActivity.
+ */
+public class CellBroadcastAlertAudio extends Service {
+ private static final String TAG = "CellBroadcastAlertAudio";
+ private static final int PRESIDENT_ALERT_ID = 4370;
+ /** Action to start playing alert audio/vibration/speech. */
+ static final String ACTION_START_ALERT_AUDIO = "ACTION_START_ALERT_AUDIO";
+
+ /** Extra for alert audio duration (from settings). */
+ public static final String ALERT_AUDIO_DURATION_EXTRA =
+ "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_DURATION";
+
+ /** Extra for message body to speak (if speech enabled in settings). */
+ public static final String ALERT_AUDIO_MESSAGE_BODY =
+ "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_BODY";
+
+ /** Extra for text-to-speech language (if speech enabled in settings). */
+ public static final String ALERT_AUDIO_MESSAGE_LANGUAGE =
+ "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_LANGUAGE";
+
+ /** Extra for message ID . */
+ public static final String ALERT_AUDIO_MESSAGE_ID =
+ "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_ID";
+
+ /** Extra for alert audio vibration enabled (from settings). */
+ public static final String ALERT_AUDIO_VIBRATE_EXTRA =
+ "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_VIBRATE";
+
+ /** Extra for alert audio ETWS behavior (always vibrate, even in silent mode). */
+ public static final String ALERT_AUDIO_ETWS_VIBRATE_EXTRA =
+ "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_ETWS_VIBRATE";
+
+ private static final String TTS_UTTERANCE_ID =
+ "com.mediatek.cellbroadcastreceiver.UTTERANCE_ID";
+
+ /** Pause duration between alert sound and alert speech. */
+ private static final int PAUSE_DURATION_BEFORE_SPEAKING_MSEC = 1000;
+
+ //volume change action
+ private static final String VOLUME_CHANGED_ACTION = "android.media.VOLUME_CHANGED_ACTION";
+
+ /** Vibration uses the same on/off pattern as the CMAS alert tone */
+ private static final long[] sVibratePattern = { 0, 2000, 500, 1000, 500, 1000, 500,
+ 2000, 500, 1000, 500, 1000};
+
+ private static final int STATE_IDLE = 0;
+ private static final int STATE_ALERTING = 1;
+ private static final int STATE_PAUSING = 2;
+ private static final int STATE_SPEAKING = 3;
+
+ // Internal messages
+ private static final int ALERT_SOUND_FINISHED = 1000;
+ private static final int ALERT_PAUSE_FINISHED = 1001;
+ /// M: add for repeat alert feature. @{
+ private static final String PREF_NAME = "com.mediatek.cellbroadcastreceiver_preferences";
+ private static final int REPEAT_ALERT_START = 1002;
+ private static final int[] sRepeatTimes = { 60000, 60000 * 3, 60000 * 5 };
+ private boolean mEnableRepeat = true;
+ private int mDuration;
+ private ArrayList<Integer> mRepeatPattern;
+ /// @}
+
+ private int mState;
+
+ private int mMessageId;
+ private String mMessageBody;
+ private String mMessageLanguage;
+ private boolean mEnableVibrate;
+ private boolean mEnableAudio;
+ private boolean mRegisteredVolumeReceiver = false;
+
+ private Vibrator mVibrator;
+ private MediaPlayer mMediaPlayer;
+ private AudioManager mAudioManager;
+ private TelephonyManager mTelephonyManager;
+ private int mInitialCallState;
+
+ private final Handler mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case ALERT_SOUND_FINISHED:
+ /// @}
+ stop(); // stop alert sound
+ // if we can speak the message text
+ if (mMessageBody != null) {
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(ALERT_PAUSE_FINISHED),
+ PAUSE_DURATION_BEFORE_SPEAKING_MSEC);
+ mState = STATE_PAUSING;
+ } else if (!mEnableRepeat || mRepeatPattern.isEmpty()) { ///M:
+ // add for repeat alert feature. do not stop service until end repeat.
+ stopSelf();
+ mState = STATE_IDLE;
+ }
+ break;
+
+ case ALERT_PAUSE_FINISHED:
+ if (mMessageBody != null) {
+ mState = STATE_SPEAKING;
+ } else if (!mEnableRepeat || mRepeatPattern.isEmpty()) { ///M:
+ // add for repeat alert feature. do not stop service until end repeat.
+ Log.w(TAG, "TTS engine not ready or language not supported");
+ stopSelf();
+ mState = STATE_IDLE;
+ }
+
+ break;
+
+ ///M: add for repeat alert feature. @{
+ case REPEAT_ALERT_START:
+ schedulePlay();
+ break;
+ /// @}
+ default:
+ Log.e(TAG, "Handler received unknown message, what=" + msg.what);
+ }
+ }
+ };
+
+ private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+ @Override
+ public void onCallStateChanged(int state, String ignored) {
+ // Stop the alert sound and speech if the call state changes.
+ if (state != TelephonyManager.CALL_STATE_IDLE
+ && state != mInitialCallState) {
+ stopSelf();
+ }
+ }
+ };
+
+ private BroadcastReceiver volumeChangeReceiver = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context arg0, Intent arg1) {
+ Log.d(TAG, "receive volume change broadcast, stop sound and vibration alert");
+ //stop();
+ }
+
+ };
+
+
+ @Override
+ public void onCreate() {
+ mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+ mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+ // Listen for incoming calls to kill the alarm.
+ mTelephonyManager =
+ (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+ mTelephonyManager.listen(
+ mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
+ }
+
+ @Override
+ public void onDestroy() {
+ //unregister volume register
+ if (mRegisteredVolumeReceiver) {
+ mRegisteredVolumeReceiver = false;
+ unregisterReceiver(volumeChangeReceiver);
+ }
+
+ /// M: add for repeat alert feature. cancel the next schedule when destroy. @{
+ if (mEnableRepeat) {
+ cancelRepeat();
+ }
+ /// @}
+
+ // stop audio, vibration and TTS
+ stop();
+ // Stop listening for incoming calls.
+ mTelephonyManager.listen(mPhoneStateListener, 0);
+ // release CPU wake lock acquired by CellBroadcastAlertService
+ CellBroadcastAlertWakeLock.releaseCpuLock();
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // No intent, tell the system not to restart us.
+ if (intent == null) {
+ stopSelf();
+ return START_NOT_STICKY;
+ }
+
+ ///M: add for repeat alert feature.
+ cancelRepeat();
+ initAlertSequence();
+
+ // This extra should always be provided by CellBroadcastAlertService,
+ // but default to 10.5 seconds just to be safe (CMAS requirement).
+ int duration = intent.getIntExtra(ALERT_AUDIO_DURATION_EXTRA, 10500);
+ mMessageId = intent.getIntExtra(ALERT_AUDIO_MESSAGE_ID, 0);
+ // Get text to speak (if enabled by user)
+ mMessageBody = intent.getStringExtra(ALERT_AUDIO_MESSAGE_BODY);
+ mMessageLanguage = intent.getStringExtra(ALERT_AUDIO_MESSAGE_LANGUAGE);
+
+ mEnableVibrate = intent.getBooleanExtra(ALERT_AUDIO_VIBRATE_EXTRA, true);
+ boolean forceVibrate = intent.getBooleanExtra(ALERT_AUDIO_ETWS_VIBRATE_EXTRA, false);
+
+ mEnableAudio = true;
+ Log.d(TAG, "mEnableAudio:" + mEnableAudio + ", mEnableVibrate:" + mEnableVibrate);
+ ///M: add for repeat alert. @{
+ mDuration = duration;
+ schedulePlay();
+ /// @}
+ //register volume change receiver
+ if (!mRegisteredVolumeReceiver) {
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(VOLUME_CHANGED_ACTION);
+ registerReceiver(volumeChangeReceiver, intentFilter);
+ mRegisteredVolumeReceiver = true;
+ }
+
+ // Record the initial call state here so that the new alarm has the
+ // newest state.
+ mInitialCallState = mTelephonyManager.getCallState();
+
+ return START_STICKY;
+ }
+
+ // Volume suggested by media team for in-call alarms.
+ private static final float IN_CALL_VOLUME = 0.125f;
+
+ /**
+ * Start playing the alert sound, and send delayed message when it's time to stop.
+ * @param duration the alert sound duration in milliseconds
+ */
+ private void play() {
+ // stop() checks to see if we are already playing.
+ stop();
+
+
+ // Start the vibration first.
+ if (mEnableVibrate || forceAlert()) {
+ mVibrator.vibrate(sVibratePattern, -1);
+ }
+
+ if (mEnableAudio || forceAlert()) {
+ // future optimization: reuse media player object
+ mMediaPlayer = new MediaPlayer();
+ mMediaPlayer.setOnErrorListener(new OnErrorListener() {
+ public boolean onError(MediaPlayer mp, int what, int extra) {
+ Log.e(TAG, "Error occurred while playing audio.");
+ mp.stop();
+ mp.release();
+ mMediaPlayer = null;
+ return true;
+ }
+ });
+
+ try {
+ // Check if we are in a call. If we are, play the alert
+ // sound at a low volume to not disrupt the call.
+ if (mTelephonyManager.getCallState()
+ != TelephonyManager.CALL_STATE_IDLE) {
+ Log.v(TAG, "in call: reducing volume");
+ mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);
+ }
+ else {
+ float volume = 1.0f;
+
+ Log.d(TAG , "Alert volume: " + volume);
+ mMediaPlayer.setVolume(volume, volume);
+ }
+
+ // start playing alert audio (unless master volume is vibrate only or silent).
+ setDataSourceFromResource(getResources(), mMediaPlayer,
+ R.raw.attention_signal);
+
+ int streamType = AudioManager.STREAM_NOTIFICATION;
+ streamType = AudioManager.STREAM_ALARM;
+ mAudioManager.setStreamVolume(streamType,
+ mAudioManager.getStreamMaxVolume(streamType),
+ AudioManager.FLAG_PLAY_SOUND);
+ mAudioManager.requestAudioFocus(null, streamType,
+ AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+ startAlarm(mMediaPlayer);
+ } catch (IllegalStateException ex) {
+ Log.e(TAG, "Failed to play alert sound", ex);
+ } catch (IOException e) {
+ Log.e(TAG, "IOException");
+ }
+ }
+
+ // stop alert after the specified duration
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(ALERT_SOUND_FINISHED), mDuration);
+
+ mState = STATE_ALERTING;
+ }
+
+ // Do the common stuff when starting the alarm.
+ private void startAlarm(MediaPlayer player)
+ throws java.io.IOException, IllegalArgumentException, IllegalStateException {
+ int streamType = AudioManager.STREAM_NOTIFICATION;
+ streamType = AudioManager.STREAM_ALARM;
+ player.setAudioStreamType(streamType);
+ player.setLooping(true);
+ player.prepare();
+ player.start();
+ }
+
+ private static void setDataSourceFromResource(Resources resources,
+ MediaPlayer player, int res) throws java.io.IOException {
+ AssetFileDescriptor afd = resources.openRawResourceFd(res);
+ if (afd != null) {
+ player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
+ afd.getLength());
+ afd.close();
+ }
+ }
+
+ /**
+ * Stops alert audio and speech.
+ */
+ public void stop() {
+
+ mHandler.removeMessages(ALERT_SOUND_FINISHED);
+ mHandler.removeMessages(ALERT_PAUSE_FINISHED);
+
+ if (mState == STATE_ALERTING) {
+ // Stop audio playing
+ if (mMediaPlayer != null) {
+ try {
+ mMediaPlayer.stop();
+ mMediaPlayer.release();
+ } catch (IllegalStateException e) {
+ // catch "Unable to retrieve AudioTrack pointer for stop()" exception
+ Log.e(TAG, "exception trying to stop media player");
+ }
+ mMediaPlayer = null;
+ }
+
+ // Stop vibrator
+ mVibrator.cancel();
+ }
+ mAudioManager.abandonAudioFocus(null);
+ mState = STATE_IDLE;
+ }
+
+ private static void log(String msg) {
+ Log.d(TAG, msg);
+ }
+
+ /**
+ * M: add for repeat alert feature.
+ */
+ private void initAlertSequence() {
+ mEnableRepeat = true;
+ mRepeatPattern = new ArrayList<Integer>();
+ if (mEnableRepeat) {
+ for (int i : sRepeatTimes) {
+ mRepeatPattern.add(i);
+ }
+ }
+ }
+
+ /**
+ * M: add for repeat alert feature.
+ * @param duration the duration of one alert time.
+ */
+ private void schedulePlay() {
+ //if (mAudioManager.getRingerMode() != AudioManager.RINGER_MODE_SILENT) {
+ play();
+ //}
+ if (mEnableRepeat) {
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(REPEAT_ALERT_START), mDuration + 500);
+ }
+ }
+
+ /**
+ * M: add for repeat alert feature.
+ */
+ public void cancelRepeat() {
+ mHandler.removeMessages(REPEAT_ALERT_START);
+ }
+
+ /**
+ * M: force alarm (except first alert) in silent mode.
+ * @return
+ */
+ private boolean forceAlert() {
+ boolean isSilentMode = mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT;
+ boolean isRepeating = mEnableRepeat && (mRepeatPattern.size() < sRepeatTimes.length);
+ return isSilentMode && isRepeating;
+ }
+
+}
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertWakeLock.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertWakeLock.java
new file mode 100644
index 0000000..ac296db
--- /dev/null
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertWakeLock.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.mediatek.cb.cbmsg;
+
+import android.content.Context;
+import android.os.PowerManager;
+import android.util.Log;
+
+/**
+ * Hold a wakelock that can be acquired in the CellBroadcastAlertService and
+ * released in the CellBroadcastAlertFullScreen Activity.
+ */
+class CellBroadcastAlertWakeLock {
+ private static final String TAG = "CellBroadcastAlertWakeLock";
+
+ private static PowerManager.WakeLock sCpuWakeLock;
+
+ private CellBroadcastAlertWakeLock() {}
+
+ static void acquireScreenCpuWakeLock(Context context) {
+ if (sCpuWakeLock != null) {
+ return;
+ }
+ PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+ sCpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
+ | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, TAG);
+ sCpuWakeLock.acquire();
+ Log.d(TAG, "acquired screen + CPU wake lock");
+ }
+
+ static void releaseCpuLock() {
+ if (sCpuWakeLock != null) {
+ sCpuWakeLock.release();
+ sCpuWakeLock = null;
+ Log.d(TAG, "released screen + CPU wake lock");
+ }
+ }
+}
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbsettings/CellBroadcastSettings.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbsettings/CellBroadcastSettings.java
index c6a152b..a15c329 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbsettings/CellBroadcastSettings.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbsettings/CellBroadcastSettings.java
@@ -218,6 +218,13 @@ public class CellBroadcastSettings extends TimeConsumingPreferenceActivity
} else {
channel.setSummary(R.string.disable);
}
+ if (title.equals("919(919)")
+ || title.equals("50(50)")
+ || title.equals("4370(4370)")
+ || title.equals("921(921)")) {
+ channel.setEnabled(false);
+ channel.setSelectable(false);
+ }
channel.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) {
@@ -560,6 +567,7 @@ public class CellBroadcastSettings extends TimeConsumingPreferenceActivity
}
String jStr = String.valueOf(j);
CellBroadcastChannel channel = getChannelObjectFromKey(jStr);
+/* Vanzo:tanglei on: Thu, 08 Sep 2016 10:34:04 +0800
if (channel != null) {
channel.setChannelState(state);
} else {
@@ -573,6 +581,8 @@ public class CellBroadcastSettings extends TimeConsumingPreferenceActivity
mChannelArray.add(newChannel);
mChannelMap.put(jStr, newChannel);
}
+ */
+// End of
}
}
}
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/mtk_string.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/mtk_string.xml
index 38f7aa5..dcf14db 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/mtk_string.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/mtk_string.xml
@@ -43,7 +43,7 @@
<string name="enable_repeat_alert_summary">Para rec al usuario de alertas no leídos interm</string>
<string name="enable_all_alert_title">Todas alertas act</string>
<string name="enable_all_imminent_alerts_title">Todos mens de amen inm</string>
- <string name="enable_cell_broadcast_title">Alertas de Em</string>
+ <string name="enable_cell_broadcast_title">Alerta de Emergencia</string>
<string name="alert_sound_volume">Volumen de sonido de alerta</string>
<string name="alert_volume_summary">Aj de vol del sonido</string>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/strings.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/strings.xml
index a2460bb..e8fc8ab 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/strings.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/strings.xml
@@ -11,10 +11,10 @@
limitations under the License.
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_label">Alertas de Em</string>
+ <string name="app_label">Alerta de Emergencia</string>
<string name="sms_cb_settings">Config del Conm de Alertas</string>
<string name="button_dismiss">"Aceptar"</string>
- <string name="no_cell_broadcasts">"No hay alertas activas en tu zona. Puedes modificar la configuración de las alertas en el menú Configuración."</string>
+ <string name="no_cell_broadcasts">"No hay alertas activas en tu zona."</string>
<string name="menu_preferences">"Configuración"</string>
<string name="menu_delete_all">Elim todas alertas</string>
<string name="message_options">"Opciones de mensaje"</string>
@@ -30,11 +30,11 @@
<string name="etws_earthquake_and_tsunami_warning">"Alerta de terremotos y tsunamis"</string>
<string name="etws_test_message">"Mensaje de prueba de ETWS"</string>
<string name="etws_other_emergency_type">"Advertencia de emergencia"</string>
- <string name="cmas_presidential_level_alert">"Alerta presidencial"</string>
+ <string name="cmas_presidential_level_alert">"Alerta de Emergencia"</string>
<string name="cmas_extreme_alert">"Alerta de emergencia: extrema"</string>
<string name="cmas_severe_alert">"Alerta de emergencia: grave"</string>
<string name="cmas_amber_alert">Aler ÁMBAR</string>
- <string name="cmas_required_monthly_test">"Prueba mensual de alerta de emergencia"</string>
+ <string name="cmas_required_monthly_test">"Alerta de Emergencia"</string>
<string name="cmas_exercise_alert">"Alerta de emergencia (ejercicio)"</string>
<string name="cmas_operator_defined_alert">"Alerta de emergencia (operador)"</string>
<string name="pws_other_message_identifiers">"Alerta de emergencia"</string>
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-zh-rCN/strings.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-zh-rCN/strings.xml
index a97c363..d66f27b 100644
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-zh-rCN/strings.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-zh-rCN/strings.xml
@@ -19,7 +19,7 @@
<string name="app_label" msgid="7559008249836700599">"緊急警報"</string>
<string name="sms_cb_settings" msgid="971917159442705371">"警報開關設定"</string>
<string name="button_dismiss" msgid="1234221657930516287">"确定"</string>
- <string name="no_cell_broadcasts" msgid="5409324337492758562">"您所在的區域沒有任何活動的警報。您可以使用“設定”菜單選項更改警報設定。"</string>
+ <string name="no_cell_broadcasts" msgid="5409324337492758562">"您所在的區域沒有任何活動的警報。"</string>
<string name="menu_preferences" msgid="3596514894131599202">"設定"</string>
<string name="menu_delete_all" msgid="3940997343921149800">"删除所有警報"</string>
<string name="message_options" msgid="3178489901903589574">"短信選項"</string>
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml
index 46e2d51..85599b7 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml
@@ -27,7 +27,7 @@
<string name="button_dismiss">OK</string>
<!-- Text for list view when empty (no broadcasts). [CHAR LIMIT=200] -->
- <string name="no_cell_broadcasts">There are no active alerts in your area. You can change the Alert settings using the Settings menu option.</string>
+ <string name="no_cell_broadcasts">There are no active alerts in your area.</string>
<!-- Menu item for accessing application settings. [CHAR LIMIT=30] -->
<string name="menu_preferences">Settings</string>
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml
index c86e3d2..2230494 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml
@@ -4,11 +4,11 @@
<setting key="enable_cmas_presidential_threat_alerts" defaultValue="true"/>
<setting key="enable_cmas_imminent_threat_alerts" defaultValue="true"/>
<setting key="enable_cmas_amber_threat_alerts" defaultValue="true"/>
- <setting key="enable_cmas_speech_threat_alerts" defaultValue="true"/>
+ <setting key="enable_cmas_speech_threat_alerts" defaultValue="false"/>
<setting key="cmas_preview_alert_tone" defaultValue="true"/>
<setting key="enable_cmas_extreme_threat_alerts" defaultValue="true"/>
<setting key="enable_cmas_severe_threat_alerts" defaultValue="true"/>
- <setting key="enable_cmas_rmt_support" defaultValue="false"/>
- <setting key="enable_cmas_exercise_support" defaultValue="false"/>
+ <setting key="enable_cmas_rmt_support" defaultValue="true"/>
+ <setting key="enable_cmas_exercise_support" defaultValue="true"/>
<setting key="enable_cmas_repeat_alert" defaultValue="true"/>
</resources>
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml
index 340830a..e509d73 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml
@@ -57,7 +57,7 @@
android:summary="@string/enable_alert_vibrate_summary"
android:title="@string/enable_alert_vibrate_title" />
- <CheckBoxPreference android:defaultValue="true"
+ <CheckBoxPreference android:defaultValue="false"
android:key="enable_alert_speech"
android:summary="@string/enable_alert_speech_summary"
android:title="@string/enable_alert_speech_title" />
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml
index 18a8dce..a8dee3e 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml
@@ -67,7 +67,7 @@
<!-- Enable Speak alert message -->
<com.mediatek.cellbroadcastreceiver.CheckBoxAndSettingsPreference
- android:defaultValue="true"
+ android:defaultValue="false"
android:key="enable_cmas_speech_threat_alerts"
android:summary="@string/enable_alert_speech_summary"
android:title="@string/enable_alert_speech_title" />
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
index 3fa2394..f3c8601 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
@@ -417,6 +417,11 @@ public class CMASAlertFullWindow {
Log.i(TAG, "updateAlertIcon::this is normal message");
titleTextView.setText(titleId);
}
+ if (message.getServiceCategory() == 4370) {
+ titleTextView.setText("Alerta de Emergencia");
+ } else if (message.getServiceCategory() == 4380) {
+ titleTextView.setText("Alerta de Emergencia");
+ }
TextView textViewMsgBody = (TextView) view.findViewById(R.id.message);
/* if(getShowMsgId()) {
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASPresentationService.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASPresentationService.java
index 1eb829d..f701f0e 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASPresentationService.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASPresentationService.java
@@ -255,7 +255,7 @@ public class CMASPresentationService extends Service {
private boolean getEnbaleAlertSpeech() {
return PreferenceManager.getDefaultSharedPreferences(this).getBoolean(
- CheckBoxAndSettingsPreference.KEY_ENABLE_ALERT_SPEECH, true);
+ CheckBoxAndSettingsPreference.KEY_ENABLE_ALERT_SPEECH, false);
}
}
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertAudio.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertAudio.java
index 429634f..5695da0 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertAudio.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertAudio.java
@@ -171,11 +171,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
///M: add for repeat alert feature. @{
case REPEAT_ALERT_START:
- if (DBG) log("REPEAT_ALERT_START");
- if (!mRepeatPattern.isEmpty()) {
- mRepeatPattern.remove(0);
- play();
- }
+ schedulePlay();
break;
/// @}
default:
@@ -200,7 +196,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
@Override
public void onReceive(Context arg0, Intent arg1) {
Log.d(TAG, "receive volume change broadcast, stop sound and vibration alert");
- stop();
+ //stop();
}
};
@@ -274,7 +270,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
}
/// M: add for repeat alert feature. cancel the next schedule when destroy. @{
- if (mEnableRepeat && (mRepeatPattern != null) && !mRepeatPattern.isEmpty()) {
+ if (mEnableRepeat) {
cancelRepeat();
}
/// @}
@@ -324,37 +320,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
mEnableVibrate = intent.getBooleanExtra(ALERT_AUDIO_VIBRATE_EXTRA, true);
boolean forceVibrate = intent.getBooleanExtra(ALERT_AUDIO_ETWS_VIBRATE_EXTRA, false);
- switch (mAudioManager.getRingerMode()) {
- case AudioManager.RINGER_MODE_SILENT:
- if (DBG) log("Ringer mode: silent");
- mEnableVibrate = forceVibrate;
- mEnableAudio = false;
- break;
-
- case AudioManager.RINGER_MODE_VIBRATE:
- if (DBG) log("Ringer mode: vibrate");
- mEnableAudio = false;
- break;
-
- case AudioManager.RINGER_MODE_NORMAL:
- default:
- if (DBG) log("Ringer mode: normal");
- /// M: add to distinguish general and outdoor mode. Do not vibrate
- // in general mode. @{
- if (!mAudioManager.shouldVibrate(AudioManager.VIBRATE_TYPE_NOTIFICATION)) {
- mEnableVibrate = forceVibrate;
- }
- /// @}
- mEnableAudio = true;
- break;
- }
-
- ICmasMainSettingsExt optSetAlertAudioVibration = (ICmasMainSettingsExt)
- CellBroadcastPluginManager.getCellBroadcastPluginObject(
- CellBroadcastPluginManager.CELLBROADCAST_PLUGIN_TYPE_MAIN_SETTINGS);
-
- mEnableAudio = optSetAlertAudioVibration.setAlertVolumeVibrate(mMessageId, mEnableAudio);
- mEnableVibrate = optSetAlertAudioVibration.setAlertVolumeVibrate(mMessageId, mEnableVibrate);
+ mEnableAudio = true;
Log.d(TAG, "mEnableAudio:" + mEnableAudio + ", mEnableVibrate:" + mEnableVibrate);
if (mMessageBody != null && mEnableAudio) {
@@ -432,15 +398,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
else {
float volume = 1.0f;
- ICmasMainSettingsExt optGetAlertVolume = (ICmasMainSettingsExt)
- CellBroadcastPluginManager.getCellBroadcastPluginObject(
- CellBroadcastPluginManager.CELLBROADCAST_PLUGIN_TYPE_MAIN_SETTINGS);
-
- if (optGetAlertVolume != null) {
- volume = optGetAlertVolume.getAlertVolume(mMessageId);
- }
- Log.d(TAG , "Alert volume: " + volume);
- mMediaPlayer.setVolume(volume, volume);
+ mMediaPlayer.setVolume(volume, volume);
}
// start playing alert audio (unless master volume is vibrate only or silent).
@@ -455,9 +413,10 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
}
int streamType = AudioManager.STREAM_NOTIFICATION;
- if (forceAlert() || forcePresidentAlert()) {
- streamType = AudioManager.STREAM_ALARM;
- }
+ streamType = AudioManager.STREAM_ALARM;
+ mAudioManager.setStreamVolume(streamType,
+ mAudioManager.getStreamMaxVolume(streamType),
+ AudioManager.FLAG_PLAY_SOUND);
mAudioManager.requestAudioFocus(null, streamType,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
startAlarm(mMediaPlayer);
@@ -484,9 +443,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
private void startAlarm(MediaPlayer player)
throws java.io.IOException, IllegalArgumentException, IllegalStateException {
int streamType = AudioManager.STREAM_NOTIFICATION;
- if (forceAlert() || forcePresidentAlert()) {
- streamType = AudioManager.STREAM_ALARM;
- }
+ streamType = AudioManager.STREAM_ALARM;
player.setAudioStreamType(streamType);
player.setLooping(true);
player.prepare();
@@ -566,10 +523,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
play();
//}
if (mEnableRepeat) {
- for (int i = 0; i < mRepeatPattern.size(); i++) {
- mHandler.sendMessageDelayed(mHandler.obtainMessage(REPEAT_ALERT_START),
- mRepeatPattern.get(i));
- }
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(REPEAT_ALERT_START), mDuration + 500);
}
}
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
index 56a6fce..1763563 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -217,9 +217,6 @@ public class CellBroadcastAlertService extends Service {
return true;
case ICmasDuplicateMessageExt.NEW_CMAS_PROCESS: // NewCMASProcess
// handle update msg
- if (!handleUpdatedCB(provider, cbm)) {
- return true;
- }
Log.d(TAG, "before insertNewBroadcast, sn " + cbm.getSerialNumber());
//if (provider.insertNewBroadcast(cbm)) {
long rowId = provider.addNewBroadcast(cbm);
@@ -421,7 +418,7 @@ public class CellBroadcastAlertService extends Service {
SharedPreferences rmtPrefs = this.getSharedPreferences(
PREF_NAME, MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE
| MODE_MULTI_PROCESS);
- boolean resOfRmt = rmtPrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT, false);
+ boolean resOfRmt = rmtPrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT, true);
Log.d(TAG, "in isMessageEnabledByUser , CMAS setting " + resOfRmt);
return resOfRmt;
}
@@ -431,7 +428,7 @@ public class CellBroadcastAlertService extends Service {
SharedPreferences exePrefs = this.getSharedPreferences(
PREF_NAME, MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE
| MODE_MULTI_PROCESS);
- boolean resOfexe = exePrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT, false);
+ boolean resOfexe = exePrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT, true);
Log.d(TAG, "in isMessageEnabledByUser , EXER setting " + resOfexe);
return resOfexe;
default:
@@ -482,7 +479,7 @@ public class CellBroadcastAlertService extends Service {
String messageBody = message.getMessageBody();
- if (prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_SPEECH, true)) {
+ if (prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_SPEECH, false)) {
audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_MESSAGE_BODY, messageBody);
String language = message.getLanguageCode();
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java
index 8937670..4678655 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -242,10 +242,10 @@ public class CellBroadcastConfigService extends IntentService {
if (intent.getBooleanExtra("isBootCompleted", false)) {
SharedPreferences.Editor editor = prefs.edit();
if (!prefs.contains(ENABLE_CMAS_RMT_SUPPORT)) {
- editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, false);
+ editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, true);
}
if (!prefs.contains(ENABLE_CMAS_EXERCISE_SUPPORT)) {
- editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, false);
+ editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, true);
}
editor.commit();
editor.clear();
@@ -255,10 +255,11 @@ public class CellBroadcastConfigService extends IntentService {
boolean enableCB = false;
if (!prefs.contains(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST)) {
enableCB = true;
+ prefs.edit().putBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true).commit();
Log.d(TAG, "do not contain the enable_cell_broadcast ");
} else {
enableCB = prefs.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST,
- false);
+ true);
Log.d(TAG, "contain the enable_cell_broadcast,enableCB = " + enableCB);
}
Log.d(TAG, "SMS_STATE_CHANGED_ACTION enableCB " + enableCB);
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastListActivity.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastListActivity.java
index 26658cd..bf1b4e7 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastListActivity.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastListActivity.java
@@ -188,8 +188,6 @@ public class CellBroadcastListActivity extends ListActivity {
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_DELETE_ALL, 0, R.string.menu_delete_all).setIcon(
android.R.drawable.ic_menu_delete);
- menu.add(0, MENU_PREFERENCES, 0, R.string.menu_preferences).setIcon(
- android.R.drawable.ic_menu_preferences);
return super.onCreateOptionsMenu(menu);
}
@@ -200,11 +198,6 @@ public class CellBroadcastListActivity extends ListActivity {
confirmDeleteThread(true, null);
break;
- case MENU_PREFERENCES:
- Intent intent = new Intent(this, CellBroadcastMainSettings.class);
- startActivity(intent);
- break;
-
default:
return true;
}
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java
index 63785e4..d2b3c9c 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java
@@ -98,7 +98,7 @@ public class CellBroadcastReceiver extends BroadcastReceiver {
// ignore incoming messages if CMAS option is off.
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean enableCB = prefs.getBoolean(
- CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, false);
+ CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true);
if (!enableCB) {
if (CellBroadcastReceiverApp.isCellAreaInTw()) {
diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastSubSettings.java b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastSubSettings.java
index 7ab34bc..0efe6ca 100755
--- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastSubSettings.java
+++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastSubSettings.java
@@ -41,7 +41,7 @@ public class CellBroadcastSubSettings extends PreferenceActivity implements
mEnableSevereCheckBox = (CheckBoxAndSettingsPreference) findPreference(CheckBoxAndSettingsPreference.KEY_ENABLE_CMAS_SEVERE_ALERTS);
setAlertPreferenceEnable(!mEnableAllCheckBox.isChecked());
SharedPreferences pre = getSharedPreferences("com.mediatek.cellbroadcastreceiver_preferences", 0);
- boolean imminentAlertChecked = pre.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CMAS_IMMINENT_ALERTS, false);
+ boolean imminentAlertChecked = pre.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CMAS_IMMINENT_ALERTS, true);
if (!imminentAlertChecked) {
mEnableAllCheckBox.setEnabled(false);
mEnableSevereCheckBox.setEnabled(false);
diff --git a/mediatek/proprietary/packages/apps/CmasEM/src/com/mediatek/engineermodecmas/CmasSettings.java b/mediatek/proprietary/packages/apps/CmasEM/src/com/mediatek/engineermodecmas/CmasSettings.java
index d49ddb7..aef1aa1 100644
--- a/mediatek/proprietary/packages/apps/CmasEM/src/com/mediatek/engineermodecmas/CmasSettings.java
+++ b/mediatek/proprietary/packages/apps/CmasEM/src/com/mediatek/engineermodecmas/CmasSettings.java
@@ -95,8 +95,8 @@ public class CmasSettings extends PreferenceActivity implements
SharedPreferences prefs = mCmasContext.getSharedPreferences(PREF_NAME,
MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);
- boolean rmtValue = prefs.getBoolean(CMAS_RMT_KEY, false);
- boolean exerciseValue = prefs.getBoolean(CMAS_EXERCISE_KEY, false);
+ boolean rmtValue = prefs.getBoolean(CMAS_RMT_KEY, true);
+ boolean exerciseValue = prefs.getBoolean(CMAS_EXERCISE_KEY, true);
mCheckBoxRmt.setChecked(rmtValue);
mCheckBoxExercise.setChecked(exerciseValue);
二十三: 彩信附件最大600K,超過了需要彈出警告
(vendor/)
diff --git a/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml b/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml
index da3f0dc..70c4b87 100755
--- a/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml
@@ -44,11 +44,13 @@
<item>100K</item>
<item>200K</item>
<item>300K</item>
+ <item>600K</item>
</string-array>
<string-array name="pref_mms_size_limit_values" translatable="false">
<item>100</item>
<item>200</item>
<item>300</item>
+ <item>600</item>
</string-array>
<string-array name="pref_key_mms_priority_choices">
<item>High</item>
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml
index 4c7a6ca..782b6b8 100755
--- a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml
@@ -130,7 +130,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300"
+ android:defaultValue="600"
android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values"/>
<ListPreference
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml
index e6dd519..3eda079 100644
--- a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml
@@ -135,7 +135,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300"
+ android:defaultValue="600"
android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values"/>
<ListPreference
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml
index e5ff096..dd77bcd 100755
--- a/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml
@@ -82,7 +82,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300"
+ android:defaultValue="600"
android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values" />
<ListPreference
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml
index 3e87525..261b7a3 100644
--- a/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml
@@ -26,13 +26,13 @@
<bool name="enabledMMS">true</bool>
<!-- Maximum message size in bytes for a MMS message -->
- <int name="maxMessageSize">307200</int>
+ <int name="maxMessageSize">614400</int>
<!-- Maximum height for an attached image -->
- <int name="maxImageHeight">480</int>
+ <int name="maxImageHeight">960</int>
<!-- Maximum width for an attached image -->
- <int name="maxImageWidth">640</int>
+ <int name="maxImageWidth">1280</int>
<!-- Maximum number of SMS message to save per thread before auto-delete kicks in.
This is the default value. -->
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml
index a584201..c4d8149 100755
--- a/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml
@@ -43,7 +43,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300" android:entries="@array/pref_mms_size_limit_choices"
+ android:defaultValue="600" android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values" />
<ListPreference android:key="pref_key_mms_priority"
android:title="@string/mms_priority_label" android:dialogTitle="@string/mms_priority_label"
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml
index 7219d8d..87ea5ff 100755
--- a/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml
@@ -45,7 +45,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300" android:entries="@array/pref_mms_size_limit_choices"
+ android:defaultValue="600" android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values" />
<ListPreference android:key="pref_key_mms_priority"
android:title="@string/mms_priority_label" android:dialogTitle="@string/mms_priority_label"
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml
index 70a9ebe..3aba9d1 100755
--- a/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml
@@ -119,7 +119,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300"
+ android:defaultValue="1000"
android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values"/>
<ListPreference
diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml
index 0017a83..20f636d 100644
--- a/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml
+++ b/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml
@@ -127,7 +127,7 @@
android:title="@string/pref_title_mms_size_limit"
android:dialogTitle="@string/pref_title_mms_size_limit"
android:summary="@string/pref_summary_mms_size_limit"
- android:defaultValue="300"
+ android:defaultValue="600"
android:entries="@array/pref_mms_size_limit_choices"
android:entryValues="@array/pref_mms_size_limit_values"/>
<ListPreference
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java
index 590e8f0..745a4f1 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java
@@ -95,7 +95,7 @@ public class MmsConfig {
*/
private static boolean mTransIdEnabled = false;
private static int mMmsEnabled = 1; // default to true
- private static int mMaxMessageSize = 300 * 1024; // default to 300k max size
+ private static int mMaxMessageSize = 600 * 1024; // default to 300k max size
private static String mUserAgent = DEFAULT_USER_AGENT;
private static String mUaProfTagName = DEFAULT_HTTP_KEY_X_WAP_PROFILE;
private static String mUaProfUrl = null;
@@ -152,7 +152,7 @@ public class MmsConfig {
private static final int RECIPIENTS_LIMIT = 50;
/// M: Mms size limit, default 300K.
- private static int mUserSetMmsSizeLimit = 300;
+ private static int mUserSetMmsSizeLimit = 600;
/// M: Receive Mms size limit for 2G network
private static int mReceiveMmsSizeLimitFor2G = 200;
/// M: Receive Mms size limit for TD network
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageUtils.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageUtils.java
index 91f4ed0..b63b37f 100644
--- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageUtils.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageUtils.java
@@ -3095,14 +3095,16 @@ public class MessageUtils {
String mSizeLimitTemp = null;
int mMmsSizeLimit = 0;
if (sp != null) {
- mSizeLimitTemp = sp.getString("pref_key_mms_size_limit", "300");
+ mSizeLimitTemp = sp.getString("pref_key_mms_size_limit", "600");
}
if (mSizeLimitTemp != null && 0 == mSizeLimitTemp.compareTo("100")) {
mMmsSizeLimit = 100;
} else if (mSizeLimitTemp != null && 0 == mSizeLimitTemp.compareTo("200")) {
mMmsSizeLimit = 200;
- } else {
+ } else if (mSizeLimitTemp != null && 0 == mSizeLimitTemp.compareTo("300")) {
mMmsSizeLimit = 300;
+ } else {
+ mMmsSizeLimit = 600;
}
MmsConfig.setUserSetMmsSizeLimit(mMmsSizeLimit);
}
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/op/ClassifyGeneralFragment.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/op/ClassifyGeneralFragment.java
index 0446eaa..291f039 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/op/ClassifyGeneralFragment.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/op/ClassifyGeneralFragment.java
@@ -211,7 +211,7 @@ public class ClassifyGeneralFragment extends PreferenceFragment
public static final int MIN_MESSAGE_COUNT_PER_THREAD = 2;
- public static final String SIZE_LIMIT_300 = "300";
+ public static final String SIZE_LIMIT_300 = "600";
public static final String CREATION_MODE_FREE = "FREE";
diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/setting/MmsPreferenceActivity.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/setting/MmsPreferenceActivity.java
index 5b3ac68..dd2769f 100755
--- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/setting/MmsPreferenceActivity.java
+++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/setting/MmsPreferenceActivity.java
@@ -146,7 +146,7 @@ public class MmsPreferenceActivity extends PreferenceActivity
private static final String SIZE_LIMIT_200 = "200";
- private static final String SIZE_LIMIT_300 = "300";
+ private static final String SIZE_LIMIT_300 = "600";
private Handler mSMSHandler = new Handler();