ODM 开发用户常见需求文档(五)

一:图库中的照片全屏显

(packages/apps/Gallery2/)

第一种:

[java] view plaincopy
  1. diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
  2. index 0592bf4..e2667d3 100755
  3. --- a/src/com/android/gallery3d/app/PhotoPage.java
  4. +++ b/src/com/android/gallery3d/app/PhotoPage.java
  5. @@ -39,6 +39,9 @@ import android.content.pm.ResolveInfo;
  6. import android.content.res.Configuration;
  7. import android.graphics.Rect;
  8. import android.net.Uri;
  9. +import android.view.WindowManager;
  10. +import android.view.Window;
  11. +import android.graphics.Color;
  12. import android.nfc.NfcAdapter;
  13. import android.nfc.NfcAdapter.CreateBeamUrisCallback;
  14. import android.nfc.NfcEvent;
  15. @@ -1237,6 +1240,9 @@ public abstract class PhotoPage extends ActivityState implements
  16. if (mShowBars) return;
  17. mShowBars = true;
  18. mOrientationManager.unlockOrientation();
  19. +        Window win = mActivity.getWindow();
  20. +        win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  21. +        win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  22. mActionBar.show();
  23. mActivity.getGLRoot().setLightsOutMode(false);
  24. /// M: [FEATURE.MODIFY] automatic layer visibility change @{
  25. @@ -1260,7 +1266,21 @@ public abstract class PhotoPage extends ActivityState implements
  26. if (!mShowBars) return;
  27. mShowBars = false;
  28. mActionBar.hide();
  29. -        mActivity.getGLRoot().setLightsOutMode(true);
  30. +        Window win = mActivity.getWindow();
  31. +        win.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  32. +        int flags = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  33. +
  34. +                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
  35. +
  36. +                    | View.SYSTEM_UI_FLAG_FULLSCREEN
  37. +
  38. +                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
  39. +
  40. +                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
  41. +
  42. +        win.getDecorView().setSystemUiVisibility(flags);
  43. +        win.setNavigationBarColor(Color.TRANSPARENT);
  44. +        //mActivity.getGLRoot().setLightsOutMode(true);
  45. mHandler.removeMessages(MSG_HIDE_BARS);
  46. refreshBottomControlsWhenReady();
  47. }
  48. @@ -2168,6 +2188,9 @@ public abstract class PhotoPage extends ActivityState implements
  49. mSensorManager.registerListener(this, proxmitySensor, SensorManager.SENSOR_DELAY_NORMAL);
  50. }
  51. // End of Vanzo:hanshengpeng
  52. +        Window win = mActivity.getWindow();
  53. +        win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  54. +        win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  55. if (mMuteVideo != null) {
  56. mMuteVideo.setMuteHasPaused(false);
  57. mMuteVideo.needPlayMuteVideo();
  58. @@ -2252,6 +2275,9 @@ public abstract class PhotoPage extends ActivityState implements
  59. mScreenNailSet = null;
  60. mScreenNailItem = null;
  61. }
  62. +        Window win = mActivity.getWindow();
  63. +        win.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  64. +        win.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  65. mActivity.getGLRoot().setOrientationSource(null);
  66. if (mBottomControls != null) mBottomControls.cleanup();

第二种:

[java] view plaincopy
  1. diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
  2. index 0df2170..9b522cd 100755
  3. --- a/src/com/android/gallery3d/app/PhotoPage.java
  4. +++ b/src/com/android/gallery3d/app/PhotoPage.java
  5. @@ -116,6 +116,9 @@ import com.mediatek.galleryframework.base.BottomControlLayer;
  6. import com.mediatek.galleryframework.base.PhotoPageBottomViewControls;
  7. import com.mediatek.galleryframework.base.LayerManager;
  8. import com.mediatek.galleryframework.base.MediaData;
  9. +import android.view.WindowManager;
  10. +import android.view.Window;
  11. +import android.graphics.Color;
  12. /* Vanzo:hanshengpeng on: Sun, 24 Jan 2016 14:44:43 +0800
  13. */
  14. import android.os.SystemProperties;
  15. @@ -1183,6 +1186,8 @@ public abstract class PhotoPage extends ActivityState implements
  16. if (mShowBars) return;
  17. mShowBars = true;
  18. mOrientationManager.unlockOrientation();
  19. +        Window win = mActivity.getWindow();
  20. +        win.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  21. mActionBar.show();
  22. mActivity.getGLRoot().setLightsOutMode(false);
  23. /// M: [FEATURE.MODIFY] automatic layer visibility change @{
  24. @@ -1206,6 +1211,9 @@ public abstract class PhotoPage extends ActivityState implements
  25. if (!mShowBars) return;
  26. mShowBars = false;
  27. mActionBar.hide();
  28. +        Window win = mActivity.getWindow();
  29. +        win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  30. +        win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  31. mActivity.getGLRoot().setLightsOutMode(true);
  32. mHandler.removeMessages(MSG_HIDE_BARS);
  33. refreshBottomControlsWhenReady();
  34. @@ -2165,6 +2173,7 @@ public abstract class PhotoPage extends ActivityState implements
  35. mScreenNailSet = null;
  36. mScreenNailItem = null;
  37. }
  38. +
  39. mActivity.getGLRoot().setOrientationSource(null);
  40. if (mBottomControls != null) mBottomControls.cleanup();

二:默认壁纸不自动生成到壁纸列表中

(packages/apps/Launcher3/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java)

[java] view plaincopy
  1. diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
  2. index e299302..5ac7b2b 100755
  3. --- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
  4. +++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
  5. @@ -1059,11 +1059,15 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
  6. if (partner == null || !partner.hideDefaultWallpaper()) {
  7. // Add an entry for the default wallpaper (stored in system resources)
  8. +/*
  9. + * TODO: replace this line with your comment
  10. WallpaperTileInfo defaultWallpaperInfo = Utilities.ATLEAST_KITKAT
  11. ? getDefaultWallpaper() : getPreKKDefaultWallpaperInfo();
  12. if (defaultWallpaperInfo != null) {
  13. bundled.add(0, defaultWallpaperInfo);
  14. }
  15. + */
  16. +// End of Vanzo:yujianpeng
  17. }
  18. return bundled;
  19. }

三:wifi默认关闭

(packages/apps/Launcher3/)

[java] view plaincopy
  1. diff --git a/AndroidManifest.xml b/AndroidManifest.xml
  2. index df22272..8929289 100755
  3. --- a/AndroidManifest.xml
  4. +++ b/AndroidManifest.xml
  5. @@ -70,6 +70,8 @@
  6. <uses-permission android:name="com.android.launcher3.permission.RECEIVE_FIRST_LOAD_BROADCAST" />
  7. <!-- M: hide apps activity requires this permission to get package size. -->
  8. <uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
  9. +    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  10. +    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  11. <!-- M: ALSP02141215, android security patch. -->
  12. <uses-permission android:name="android.permission.GET_TASKS" />
  13. <!-- M: ALSP02241595, add MANAGE_USERS permission. -->
  14. diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
  15. index 9366659..7c30d9d 100644
  16. --- a/src/com/android/launcher3/Launcher.java
  17. +++ b/src/com/android/launcher3/Launcher.java
  18. @@ -146,6 +146,9 @@ import android.hardware.SensorEvent;
  19. import android.hardware.SensorEventListener;
  20. import android.hardware.SensorManager;
  21. import com.android.featureoption.FeatureOption;
  22. +import android.net.NetworkInfo;
  23. +import android.net.wifi.WifiManager;
  24. +import android.net.ConnectivityManager;
  25. // End of Vanzo:hanshengpeng
  26. /**
  27. @@ -5163,6 +5166,18 @@ public class Launcher extends Activity
  28. editor.apply();
  29. }
  30. +    private void closeWifiGps() {
  31. +        // Intent sh = new Intent("com.android.settings.location.CLOSE");
  32. +        //sendBroadcast(sh);
  33. +        final WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
  34. +        ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  35. +        NetworkInfo netWork = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  36. +        if (wifiManager == null || netWork.isConnected()) {
  37. +            return;
  38. +        }
  39. +        wifiManager.setWifiEnabled(false);
  40. +    }
  41. +
  42. @Thunk void showFirstRunClings() {
  43. // The two first run cling paths are mutually exclusive, if the launcher is preinstalled
  44. // on the device, then we always show the first run cling experience (or if there is no
  45. @@ -5175,6 +5190,7 @@ public class Launcher extends Activity
  46. } else {
  47. launcherClings.showLongPressCling(true);
  48. }
  49. +            closeWifiGps();
  50. }
  51. }

四:手机插入SD卡时,默认存储器为SD卡

(packages/apps/Settings/)

[java] view plaincopy
  1. diff --git a/AndroidManifest.xml b/AndroidManifest.xml
  2. index c8b252a..bed2c41 100644
  3. --- a/AndroidManifest.xml
  4. +++ b/AndroidManifest.xml
  5. @@ -3173,6 +3173,12 @@ add fp control
  6. </intent-filter>
  7. </receiver>
  8. <!-- End of Vanzo:fenghaitao -->
  9. -
  10. +    <receiver android:name=".UsbBroadCastReceiver">
  11. +        <intent-filter android:priority="1000">
  12. +            <action android:name="android.intent.action.MEDIA_MOUNTED"/>
  13. +            <action android:name="android.intent.action.MEDIA_EJECT" />
  14. +            <data android:scheme="file"/>
  15. +        </intent-filter>
  16. +    </receiver>
  17. </application>
  18. </manifest>
  19. diff --git a/src/com/android/settings/UsbBroadCastReceiver.java b/src/com/android/settings/UsbBroadCastReceiver.java
  20. new file mode 100644
  21. index 0000000..b578167
  22. --- /dev/null
  23. +++ b/src/com/android/settings/UsbBroadCastReceiver.java
  24. @@ -0,0 +1,26 @@
  25. +package com.android.settings;
  26. +
  27. +import android.content.BroadcastReceiver;
  28. +import android.content.Context;
  29. +import android.content.Intent;
  30. +import android.provider.Settings;
  31. +import android.util.Log;
  32. +import android.os.storage.IMountService;
  33. +import com.mediatek.storage.StorageManagerEx;
  34. +
  35. +public class UsbBroadCastReceiver extends BroadcastReceiver {
  36. +    String TAG = "UsbBroadCastReceiver";
  37. +    String ExternalStoragePath = StorageManagerEx.getExternalStoragePath();
  38. +
  39. +
  40. +    public void onReceive(Context context, Intent intent) {
  41. +
  42. +        Log.i(TAG,"receive change request");
  43. +        if (Intent.ACTION_MEDIA_MOUNTED.equals(intent.getAction())) {
  44. +            StorageManagerEx.setDefaultPath(ExternalStoragePath);
  45. +        }
  46. +    }
  47. +
  48. +}

五:GPS默认节电模式

(packages/apps/Settings/src/com/android/settings/location/LocationSettings.java)

[java] view plaincopy
  1. diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
  2. index 3b71e79..3324c4d 100644
  3. --- a/src/com/android/settings/location/LocationSettings.java
  4. +++ b/src/com/android/settings/location/LocationSettings.java
  5. @@ -385,7 +385,7 @@ public class LocationSettings extends LocationSettingsBase
  6. @Override
  7. public void onSwitchChanged(Switch switchView, boolean isChecked) {
  8. if (isChecked) {
  9. -            setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
  10. +            setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_BATTERY_SAVING);
  11. } else {
  12. setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_OFF);
  13. }

六:更改在线壁纸名称

(packages/apps/Settings/src/com/android/settings/WallpaperTypeSettings.java)

[java] view plaincopy
  1. diff --git a/src/com/android/settings/WallpaperTypeSettings.java b/src/com/android/settings/WallpaperTypeSettings.java
  2. index 9046bfb..138167c 100644
  3. --- a/src/com/android/settings/WallpaperTypeSettings.java
  4. +++ b/src/com/android/settings/WallpaperTypeSettings.java
  5. @@ -31,6 +31,8 @@ import com.android.settings.search.SearchIndexableRaw;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. +import java.util.Locale;
  9. public class WallpaperTypeSettings extends SettingsPreferenceFragment implements Indexable {
  10. @@ -70,7 +72,14 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment implements
  11. pref.setIntent(prefIntent);
  12. CharSequence label = info.loadLabel(pm);
  13. if (label == null) label = info.activityInfo.packageName;
  14. -            pref.setTitle(label);
  15. +            String locale = Locale.getDefault().getLanguage();
  16. +            if("es".equals(locale )&&label.equals("Online Wallpaper")){
  17. +                pref.setTitle("Fondo de pantalla en línea");
  18. +            }else{
  19. +                pref.setTitle(label);
  20. +            }
  21. parent.addPreference(pref);
  22. }
  23. }

七:相机默认防闪做到60

(vendor/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml b/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml
  2. index 607f6a0..a01f714 100755
  3. --- a/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml
  4. +++ b/mediatek/proprietary/packages/apps/Camera/res/values/arrays.xml
  5. @@ -684,6 +684,7 @@ add 16M 16_9
  6. </string-array>
  7. <!-- Default antibanding setting.-->
  8. <string-array name="pref_camera_antibanding_default_array" translatable="false">
  9. +        <item>60hz</item>
  10. <item>auto</item>
  11. <item>off</item>
  12. <item>50hz</item>

八:文件管理改变可用空间到4.16G和总容量8G

(vendor/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java)

[java] view plaincopy
  1. 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
  2. index 47b8813..ccceac6 100644
  3. --- a/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
  4. +++ b/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
  5. @@ -47,7 +47,7 @@ import android.view.ViewGroup;
  6. import android.widget.BaseAdapter;
  7. import android.widget.ImageView;
  8. import android.widget.TextView;
  9. import com.mediatek.filemanager.service.FileManagerService;
  10. import com.mediatek.filemanager.utils.FileUtils;
  11. import com.mediatek.filemanager.utils.LogUtils;
  12. @@ -319,8 +319,10 @@ public class FileInfoAdapter extends BaseAdapter {
  13. if (fileInfo.isDirectory()) {
  14. if (MountPointManager.getInstance().isMountPoint(fileInfo.getFileAbsolutePath())) {
  15. StringBuilder sb = new StringBuilder();
  16. -                String freeSpaceString = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()));
  17. -                String totalSpaces = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));
  18. +                //String freeSpaceString = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()));
  19. +                String freeSpaceString = "4.16 GB";
  20. +                //String totalSpaces = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));
  21. +                String totalSpaces = "8.00 GB";
  22. LogUtils.d(TAG, "setSizeText, file name = " + fileInfo.getFileName()
  23. + ",file path = " + fileInfo.getFileAbsolutePath());
  24. LogUtils.d(TAG, "setSizeText, freeSpace = " + MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()) + ",totalSpace = "

九:添加内存信息

(vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java)

[java] view plaincopy
  1. 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
  2. index 4a1252a..ffdfd0d 100755
  3. --- a/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java
  4. +++ b/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DeviceInfoSettings.java
  5. @@ -69,6 +69,8 @@ public class DeviceInfoSettings extends Activity {
  6. addRow(name,value);
  7. line = reader.readLine();
  8. }
  9. +                   addRow("RAM:","KINGSTON 1GB");
  10. +                   addRow("ROM:","KINGSTON 8GB");
  11. }
  12. reader.close();

十:默认浏览器--------本地浏览器设为默认浏览,打开链接(消费提示音等)不会弹出选择浏览器提示框,默认搜索引擎----Google

(frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java)

[java] view plaincopy
  1. diff --git a/base/services/core/java/com/android/server/pm/PackageManagerService.java b/base/services/core/java/com/android/server/pm/PackageManagerService.java
  2. index bf86b54..f640a8b 100644
  3. --- a/base/services/core/java/com/android/server/pm/PackageManagerService.java
  4. +++ b/base/services/core/java/com/android/server/pm/PackageManagerService.java
  5. @@ -2632,11 +2632,55 @@ public class PackageManagerService extends IPackageManager.Stub {
  6. // are all flushed.  Not really needed, but keeps things nice and
  7. // tidy.
  8. Runtime.getRuntime().gc();
  9. -
  10. +        setDefaultBrowser();
  11. // Expose private service for system components to use.
  12. LocalServices.addService(PackageManagerInternal.class, new PackageManagerInternalImpl());
  13. }
  14. +    private final void setDefaultBrowser(){
  15. +        Log.d("debug_default","setDefaultBrowser is called.");
  16. +        if(!isFirstBoot()) {
  17. +            Log.d("debug_default","not first boot, return");
  18. +            return;
  19. +        }
  20. +        String str1 = "android.intent.category.DEFAULT";
  21. +        String str2 = "android.intent.category.BROWSABLE";
  22. +        String str3 = "android.intent.action.VIEW";
  23. +        //intent filter
  24. +        IntentFilter filter = new IntentFilter(str3);
  25. +        filter.addCategory(str1);
  26. +        filter.addCategory(str2);
  27. +        filter.addDataScheme("http");
  28. +        //intent
  29. +        Intent intent = new Intent(str3);
  30. +        intent.addCategory(str2);
  31. +        intent.addCategory(str1);
  32. +        Uri uri = Uri.parse("http://");
  33. +        intent.setDataAndType(uri, null);
  34. +        ComponentName component = new ComponentName("com.android.browser","com.android.browser.BrowserActivity");
  35. +        List<ResolveInfo> resolveInfoList = queryIntentActivities(intent,intent.getType(),PackageManager.GET_INTENT_FILTERS, 0);
  36. +        int size = resolveInfoList.size();
  37. +        ComponentName[] arrayOfComponentName = new ComponentName[size];
  38. +        boolean no_UC = true;
  39. +        for (int i = 0; i < size; i++)
  40. +        {
  41. +            ActivityInfo activityInfo = resolveInfoList.get(i).activityInfo;
  42. +            String packageName = activityInfo.packageName;
  43. +            String className = activityInfo.name;
  44. +            if (packageName.equals("com.android.browser")) no_UC = false;
  45. +            ComponentName componentName = new ComponentName(packageName, className);
  46. +            arrayOfComponentName[i] = componentName;
  47. +        }
  48. +        if (no_UC){
  49. +            Log.d("debug_default","no uc package");
  50. +            return;
  51. +        }else{
  52. +            Log.d("debug_default","uc package is in, set it as Preferred.");
  53. +        }
  54. +        addPreferredActivity2(filter,IntentFilter.MATCH_CATEGORY_SCHEME, arrayOfComponentName,component);
  55. +        Log.d("debug_default","add UC to PreferredActivity");
  56. +    }
  57. +
  58. @Override
  59. public boolean isFirstBoot() {
  60. return !mRestoredSettings;
  61. @@ -15747,7 +15791,7 @@ public class PackageManagerService extends IPackageManager.Stub {
  62. synchronized (mPackages) {
  63. filter.dump(new LogPrinter(Log.INFO, TAG), "  ");
  64. mSettings.editPreferredActivitiesLPw(0).addFilter(new PreferredActivity(filter, match, set, activity, true));
  65. -            scheduleWriteSettingsLocked();
  66. +            mSettings.writePackageRestrictionsLPr(0);
  67. }
  68. }
  69. // End of

十一:浏览器正下载时,点击取消或者中止下载,需要弹出警告:Are you sure to delete it?/¿estás seguro para eliminarlo?

(frameworks/)

[java] view plaincopy
  1. diff --git a/base/packages/DocumentsUI/res/values-en-rUS/strings.xml b/base/packages/DocumentsUI/res/values-en-rUS/strings.xml
  2. index 1170162..e4c52af 100755
  3. --- a/base/packages/DocumentsUI/res/values-en-rUS/strings.xml
  4. +++ b/base/packages/DocumentsUI/res/values-en-rUS/strings.xml
  5. @@ -103,4 +103,8 @@
  6. <string name="menu_advanced_hide" product="default">Hide SD card</string>
  7. <string name="menu_file_size_show">Show file size</string>
  8. <string name="menu_file_size_hide">Hide file size</string>
  9. -</resources>
  10. \ No newline at end of file
  11. +    <string name="custom_tips">"Tips"</string>
  12. +    <string name="message">"Are you sure to delete it?"</string>
  13. +    <string name="confirm">"yes"</string>
  14. +    <string name="cancel">"no"</string>
  15. +</resources>
  16. diff --git a/base/packages/DocumentsUI/res/values-es-rUS/strings.xml b/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
  17. index 12a62ea..932d5bb 100644
  18. --- a/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
  19. +++ b/base/packages/DocumentsUI/res/values-es-rUS/strings.xml
  20. @@ -16,6 +16,10 @@
  21. <resources xmlns:android="http://schemas.android.com/apk/res/android"
  22. xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
  23. +    <string name="custom_tips">"Consejos"</string>
  24. +    <string name="message">"¿estás seguro para eliminarlo?"</string>
  25. +    <string name="confirm">"si"</string>
  26. +    <string name="cancel">"no"</string>
  27. <string name="app_label" msgid="2783841764617238354">"Documentos"</string>
  28. <string name="title_open" msgid="4353228937663917801">"Abrir desde"</string>
  29. <string name="title_save" msgid="2433679664882857999">"Guardar en"</string>
  30. diff --git a/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
  31. index 643921c..8b6bff2 100644
  32. --- a/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
  33. +++ b/base/packages/DocumentsUI/res/values-zh-rCN/strings.xml
  34. @@ -16,6 +16,10 @@
  35. <resources xmlns:android="http://schemas.android.com/apk/res/android"
  36. xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
  37. +    <string name="custom_tips">"提示"</string>
  38. +    <string name="message">"您确定要删除吗?"</string>
  39. +    <string name="confirm">"删除"</string>
  40. +    <string name="cancel">"取消"</string>
  41. <string name="app_label" msgid="2783841764617238354">"文档"</string>
  42. <string name="title_open" msgid="4353228937663917801">"打开文件"</string>
  43. <string name="title_save" msgid="2433679664882857999">"保存文件"</string>
  44. diff --git a/base/packages/DocumentsUI/res/values/strings.xml b/base/packages/DocumentsUI/res/values/strings.xml
  45. index 23c61fa..fcfa7ab 100755
  46. --- a/base/packages/DocumentsUI/res/values/strings.xml
  47. +++ b/base/packages/DocumentsUI/res/values/strings.xml
  48. @@ -137,4 +137,8 @@
  49. <string name="retry">Retry</string>
  50. <!-- Contents of the copying failure alert dialog. [CHAR LIMIT=48] -->
  51. <string name="copy_failure_alert_content">These files weren\'t copied: <xliff:g id="list">%1$s</xliff:g></string>
  52. +    <string name="custom_tips">Tips</string>
  53. +    <string name="message">Are you sure to delete it?</string>
  54. +    <string name="confirm">yes</string>
  55. +    <string name="cancel">no</string>
  56. </resources>
  57. diff --git a/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
  58. index 9ae6e29..540f459 100755
  59. --- a/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
  60. +++ b/base/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
  61. @@ -36,6 +36,7 @@ import static com.android.documentsui.model.DocumentInfo.getCursorString;
  62. import android.app.Activity;
  63. import android.app.ActivityManager;
  64. import android.app.ActivityManager.RunningTaskInfo;
  65. +import android.app.AlertDialog;
  66. import android.app.Fragment;
  67. import android.app.FragmentManager;
  68. import android.app.FragmentTransaction;
  69. @@ -45,6 +46,7 @@ import android.content.ContentProviderClient;
  70. import android.content.ContentResolver;
  71. import android.content.ContentValues;
  72. import android.content.Context;
  73. +import android.content.DialogInterface;
  74. import android.content.Intent;
  75. import android.content.Loader;
  76. import android.content.res.Resources;
  77. @@ -107,6 +109,7 @@ import com.mediatek.common.documentsui.IDocumentsUIExtension;
  78. /// M: Add to support drm
  79. import com.mediatek.drm.OmaDrmStore;
  80. import com.mediatek.drm.OmaDrmUtils;
  81. +import android.widget.Toast;
  82. /**
  83. * Display the documents inside a single directory.
  84. @@ -633,10 +636,12 @@ public class DirectoryFragment extends Fragment {
  85. return true;
  86. }
  87. +        private ArrayList<DocumentInfo> docs;
  88. @Override
  89. public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
  90. final SparseBooleanArray checked = mCurrentView.getCheckedItemPositions();
  91. -            final ArrayList<DocumentInfo> docs = Lists.newArrayList();
  92. +            //final ArrayList<DocumentInfo> docs = Lists.newArrayList();
  93. +            docs = Lists.newArrayList();
  94. final int size = checked.size();
  95. final int id = item.getItemId();
  96. for (int i = 0; i < size; i++) {
  97. @@ -685,10 +690,11 @@ public class DirectoryFragment extends Fragment {
  98. } else if (id == R.id.menu_delete) {
  99. /// M: remove state @{
  100. -                final State state = getDisplayState(DirectoryFragment.this);
  101. -                state.dirState.remove(mStateKey);
  102. +             //  final State state = getDisplayState(DirectoryFragment.this);
  103. +              //  state.dirState.remove(mStateKey);
  104. /// @}
  105. -                onDeleteDocuments(docs);
  106. +                deleteDialog();
  107. +            //  onDeleteDocuments(docs);
  108. mode.finish();
  109. return true;
  110. @@ -709,7 +715,24 @@ public class DirectoryFragment extends Fragment {
  111. return false;
  112. }
  113. }
  114. -
  115. +        private void deleteDialog(){
  116. +           new AlertDialog.Builder(getActivity())
  117. +           .setTitle(R.string.custom_tips)
  118. +           .setMessage(R.string.message)
  119. +           .setPositiveButton(R.string.confirm,
  120. +                   new DialogInterface.OnClickListener() {
  121. +
  122. +                       @Override
  123. +                       public void onClick(DialogInterface arg0, int arg1) {
  124. +                           // TODO Auto-generated method stub
  125. +                           final State state = getDisplayState(DirectoryFragment.this);
  126. +                           state.dirState.remove(mStateKey);
  127. +                           onDeleteDocuments(docs);
  128. +                       }
  129. +                   })
  130. +           .setNegativeButton(R.string.cancel,null).show();
  131. +
  132. +        }
  133. @Override
  134. public void onDestroyActionMode(ActionMode mode) {
  135. /// M: restore action mode @{

十二:改关机时间长短

(frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java)

[java] view plaincopy
  1. diff --git a/base/services/core/java/com/android/server/power/ShutdownThread.java b/base/services/core/java/com/android/server/power/ShutdownThread.java
  2. index 710bcc2..9f8be2e 100644
  3. --- a/base/services/core/java/com/android/server/power/ShutdownThread.java
  4. +++ b/base/services/core/java/com/android/server/power/ShutdownThread.java
  5. @@ -143,7 +143,7 @@ public final class ShutdownThread extends Thread {
  6. private static int mShutdownFlow;
  7. // Shutdown Animation
  8. -    private static final int MIN_SHUTDOWN_ANIMATION_PLAY_TIME = 5 * 1000;
  9. +    private static final int MIN_SHUTDOWN_ANIMATION_PLAY_TIME = 10 * 1000;
  10. // CU/CMCC operator require 3-5s
  11. private static long beginAnimationTime = 0;
  12. private static long endAnimationTime = 0;
  13. @@ -159,7 +159,7 @@ public final class ShutdownThread extends Thread {
  14. * 2: bypass radio off
  15. * 3: bypass both
  16. * */
  17. -
  18. +    private static int screen_turn_off_time = 10 * 1000;
  19. private static final boolean mSpew = true;   //debug enable
  20. private static IBootAnimExt mIBootAnim = null; // for boot animation
  21. @@ -526,7 +526,7 @@ public final class ShutdownThread extends Thread {
  22. beginAnimationTime = 0;
  23. boolean mShutOffAnimation = configShutdownAnimation(context);
  24. -        int screenTurnOffTime = getScreenTurnOffTime(context);
  25. +        int screenTurnOffTime = screen_turn_off_time;
  26. synchronized (mEnableAnimatingSync) {
  27. if (mEnableAnimating) {
  28. if (mShutOffAnimation) {

十三:wifi热点上限数

(frameworks/base/core/java/android/provider/Settings.java)

[java] view plaincopy
  1. diff --git a/base/core/java/android/provider/Settings.java b/base/core/java/android/provider/Settings.java
  2. index 4169d8c..78c167d 100644
  3. --- a/base/core/java/android/provider/Settings.java
  4. +++ b/base/core/java/android/provider/Settings.java
  5. @@ -3528,7 +3528,7 @@ public final class Settings {
  6. * Wifi hotspot default client number
  7. * @hide
  8. */
  9. -        public static final int WIFI_HOTSPOT_DEFAULT_CLIENT_NUM = 6;
  10. +        public static final int WIFI_HOTSPOT_DEFAULT_CLIENT_NUM = 5;
  11. /**
  12. * The max client num of hotspot

十四:默认打开CB(小区广播)消息

(modems/lwtg/custom/service/nvram/nvram_cust_pack.c)

[java] view plaincopy
  1. diff --git a/lwtg/custom/service/nvram/nvram_cust_pack.c b/lwtg/custom/service/nvram/nvram_cust_pack.c
  2. index fd1f347..9d9ad3a 100644
  3. --- a/lwtg/custom/service/nvram/nvram_cust_pack.c
  4. +++ b/lwtg/custom/service/nvram/nvram_cust_pack.c
  5. @@ -1016,7 +1016,7 @@ kal_uint8 const COMMON_NVRAM_EF_SMSAL_COMMON_PARAM_DEFAULT[] =
  6. #ifdef __UE_SIMULATOR__
  7. 0x01, 0x01,         /* CB setting - ON */
  8. #else
  9. -    0x00, 0x01,         /* CB setting */
  10. +    0x01, 0x01,         /* CB setting */
  11. #endif
  12. 0xFF,               /* AT default profile ID.0xFF:invalid profile ID and SMSAL auto select profile id */
  13. 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)

[java] view plaincopy
  1. diff --git a/lwtg/custom/service/nvram/nvram_data_items.c b/lwtg/custom/service/nvram/nvram_data_items.c
  2. index c8ba4d6..bcb406c 100644
  3. --- a/lwtg/custom/service/nvram/nvram_data_items.c
  4. +++ b/lwtg/custom/service/nvram/nvram_data_items.c
  5. @@ -3393,6 +3393,7 @@ typedef enum
  6. * Define necessary default values for each logical data item.
  7. */
  8. +static kal_uint8 const NVRAM_EF_PS_CONFORMANCE_TESTMODE_REVISE_DEFAULT[] ={ 0x00, 0x00, 0x40, 0x00 };
  9. kal_uint8 const NVRAM_EF_ZERO_DEFAULT[] = { 0x00 };
  10. kal_uint8 const NVRAM_EF_FF_DEFAULT[] = { 0xFF };
  11. @@ -10685,7 +10686,7 @@ ltable_entry_struct logical_data_item_table_core[] =
  12. #ifdef __UE_SIMULATOR__
  13. NVRAM_NORMAL(NVRAM_EF_PS_CONFORMANCE_TESTMODE_DEFAULT),
  14. #else
  15. -        NVRAM_NORMAL(NVRAM_EF_ZERO_DEFAULT),
  16. +       NVRAM_NORMAL(NVRAM_EF_PS_CONFORMANCE_TESTMODE_REVISE_DEFAULT),
  17. #endif
  18. NVRAM_CATEGORY_USER,
  19. NVRAM_ATTR_AVERAGE,
  20. diff --git a/lwtg/interface/service/nvram/nvram_editor_data_item.h b/lwtg/interface/service/nvram/nvram_editor_data_item.h
  21. index 6bca59b..f69ff68 100644
  22. --- a/lwtg/interface/service/nvram/nvram_editor_data_item.h
  23. +++ b/lwtg/interface/service/nvram/nvram_editor_data_item.h
  24. @@ -2776,7 +2776,7 @@
  25. #endif
  26. -#define NVRAM_EF_PS_CONFORMANCE_TESTMODE_LID_VERNO           "000"
  27. +#define NVRAM_EF_PS_CONFORMANCE_TESTMODE_LID_VERNO           "001"
  28. #define NVRAM_EF_MOBILE_BROADBAND_PROVISION_CONTEXT_LID_VERNO "000"   //__MOBILE_BROADBAND_PROVISION_CONTEXT__
  29. #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)

[java] view plaincopy
  1. diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
  2. index 00d1fbc..6e4c882 100644
  3. --- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
  4. +++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
  5. @@ -135,21 +135,19 @@ public class ContactEditorAccountsChangedActivity extends Activity {
  6. if (numAccounts >= 2) {
  7. // When the user has 2+ writable accounts, show a list of accounts so the user can pick
  8. // which account to create a contact in.
  9. -            setContentView(R.layout.contact_editor_accounts_changed_activity_with_picker);
  10. -
  11. -            final TextView textView = (TextView) findViewById(R.id.text);
  12. /// M:
  13. -            textView.setText(getString(R.string.store_contact_to));
  14. -
  15. -            final Button button = (Button) findViewById(R.id.add_account_button);
  16. -            button.setText(getString(R.string.add_new_account));
  17. -            button.setOnClickListener(mAddAccountClickListener);
  18. -
  19. -            final ListView accountListView = (ListView) findViewById(R.id.account_list);
  20. mAccountListAdapter = new AccountsListAdapter(this,
  21. AccountListFilter.ACCOUNTS_CONTACT_WRITABLE);
  22. -            accountListView.setAdapter(mAccountListAdapter);
  23. -            accountListView.setOnItemClickListener(mAccountListItemClickListener);
  24. +            String accountType = mAccountListAdapter.getItem(0).type.toString();
  25. +            if (AccountTypeUtils.isAccountTypeIccCard(accountType)) {
  26. +                AccountWithDataSet ads = mAccountListAdapter.getItem(0);
  27. +
  28. +                mSubId = SubInfoUtils.getInvalidSubId();
  29. +                if (ads instanceof AccountWithDataSetEx) {
  30. +                    mSubId = ((AccountWithDataSetEx) ads).getSubId();
  31. +                }
  32. +                checkPHBStateAndSaveAccount(0);
  33. +            }
  34. } else if (numAccounts == 1) {
  35. // If the user has 1 writable account we will just show the user a message with 2
  36. // possible action buttons.

十七:第一次开机是如果无sim卡加提示

(packages/apps/Launcher3/)

[java] view plaincopy
  1. diff --git a/AndroidManifest.xml b/AndroidManifest.xml
  2. index 73f01e2..0b12bea 100644
  3. --- a/AndroidManifest.xml
  4. +++ b/AndroidManifest.xml
  5. @@ -64,6 +64,7 @@
  6. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  7. <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
  8. <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
  9. +    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
  10. <uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
  11. <uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
  12. <uses-permission android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS" />
  13. diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
  14. index 8a0ce6a..b959c93 100644
  15. --- a/src/com/android/launcher3/Launcher.java
  16. +++ b/src/com/android/launcher3/Launcher.java
  17. @@ -33,7 +33,9 @@ import android.annotation.TargetApi;
  18. import android.app.Activity;
  19. import android.app.ActivityManager;
  20. import android.app.ActivityOptions;
  21. +import android.app.Dialog;
  22. import android.app.AlertDialog;
  23. +import android.app.AlertDialog.Builder;
  24. import android.app.SearchManager;
  25. import android.app.Service;
  26. import android.appwidget.AppWidgetHostView;
  27. @@ -102,6 +104,7 @@ import android.view.animation.OvershootInterpolator;
  28. import android.view.inputmethod.InputMethodManager;
  29. import android.widget.Advanceable;
  30. import android.widget.FrameLayout;
  31. +import android.telephony.TelephonyManager;
  32. import android.widget.ImageView;
  33. import android.widget.TextView;
  34. import android.widget.Toast;
  35. @@ -498,6 +501,7 @@ public class Launcher extends Activity
  36. ///M.
  37. private String mCurrentQsbPkgName;
  38. +    private TelephonyManager telMgr;
[java] view plaincopy
  1. +    private int first_boot = 0;
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. @@ -522,6 +526,17 @@ public class Launcher extends Activity
  5. super.onCreate(savedInstanceState);
  6. +<span style="white-space:pre"> </span> if(<span style="font-family:Verdana, sans-serif;">first_boot </span><span style="font-family:Verdana, sans-serif;">== </span><span style="font-family:Verdana, sans-serif;">0</span><span style="font-family:Verdana, sans-serif;">){</span><span style="font-family:Verdana, sans-serif;">
  7. </span>+            telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
  8. +            Log.i("rmy", "telMgr()="+telMgr.getSimState());
  9. +            if (telMgr.getSimState() == telMgr.SIM_STATE_READY) {
  10. +            <span style="white-space:pre"> </span>Log.i("rmy", "良好");
  11. +            } else if (telMgr.getSimState() == telMgr.SIM_STATE_ABSENT) {
  12. +               Log.i("rmy", "无SIM卡");
  13. +               checkSimDialog(this);
  14. +            } else {
  15. +               Log.i("rmy", "SIM卡被锁定或未知的状态");
  16. +            }
  17. +<span style="white-space:pre"> </span> }
  18. LauncherAppState.setApplicationContext(getApplicationContext());
  19. LauncherAppState app = LauncherAppState.getInstance();
  20. @@ -649,6 +664,21 @@ public class Launcher extends Activity
  21. }
  22. }
  23. +    private void checkSimDialog(final Context context) {
  24. +        AlertDialog.Builder simDialog = new AlertDialog.Builder(context);
  25. +        simDialog.setTitle("Preguntar");
  26. +        simDialog.setMessage("SIM invalida");
  27. +        simDialog.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
  28. +            @Override
  29. +            public void onClick(DialogInterface dialog, int which) {
  30. +                dialog.dismiss();
  31. +            }
  32. +        });
  33. +        AlertDialog dialog = simDialog.create();
  34. +        dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
  35. +        dialog.show();
  36. +    }
  37. +
  38. @Override
  39. public void onSettingsChanged(String settings, boolean value) {
  40. if (Utilities.ALLOW_ROTATION_PREFERENCE_KEY.equals(settings)) {
[java] view plaincopy

十八:wifi要内置两个名字分别为MOVISTAR WIFI and VIVO-WIFI 的无线网。安全类型为802.1XEAP.密码为空。 类似用户进入wifi界面,手机创建一个wifi后的效果。如附件图片

(packages/apps/Settings/)

[java] view plaincopy
  1. diff --git a/src/com/android/settings/net/DataUsageMeteredSettings.java b/src/com/android/settings/net/DataUsageMeteredSettings.java
  2. index ec1dd38..56ab5e8 100644
  3. --- a/src/com/android/settings/net/DataUsageMeteredSettings.java
  4. +++ b/src/com/android/settings/net/DataUsageMeteredSettings.java
  5. @@ -118,6 +118,11 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
  6. final NetworkTemplate template = NetworkTemplate.buildTemplateWifi(networkId);
  7. final MeteredPreference pref = new MeteredPreference(context, template);
  8. pref.setTitle(removeDoubleQuotes(networkId));
  9. +          if (networkId.contains("MOVISTAR WIFI")) {
  10. +              pref.setTitle("MOVISTAR WIFI");
  11. +          } else if (networkId.contains("VIVO WIFI")) {
  12. +              pref.setTitle("VIVO WIFI");
  13. +          }
  14. return pref;
  15. }
  16. @@ -207,6 +212,11 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
  17. data = new SearchIndexableRaw(context);
  18. data.title = removeDoubleQuotes(networkId);
  19. +                            if (networkId.contains("MOVISTAR WIFI")) {
  20. +                                 data.title = "MOVISTAR WIFI";
  21. +                            } else if (networkId.contains("VIVO WIFI")) {
  22. +                                 data.title = "VIVO WIFI";
  23. +                            }
  24. data.screenTitle = res.getString(R.string.data_usage_menu_metered);
  25. result.add(data);
  26. }
  27. diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
  28. index 8a241be..e91613c 100644
  29. --- a/src/com/android/settings/wifi/WifiConfigController.java
  30. +++ b/src/com/android/settings/wifi/WifiConfigController.java
  31. @@ -328,6 +328,10 @@ public class WifiConfigController implements TextWatcher,
  32. }
  33. if (mAccessPoint.isSaved() || mAccessPoint.isActive()) {
  34. mConfigUi.setForgetButton(res.getString(R.string.wifi_forget));
  35. +                    if (!mAccessPoint.toString().contains("MOVISTAR WIFI")
  36. +                            && !mAccessPoint.toString().contains("VIVO WIFI")) {
  37. +                         mConfigUi.setForgetButton(res.getString(R.string.wifi_forget));
  38. +                     }
  39. }
  40. }
  41. }
  42. diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
  43. index 03ab864..c0eb2d1 100644
  44. --- a/src/com/android/settings/wifi/WifiSettings.java
  45. +++ b/src/com/android/settings/wifi/WifiSettings.java
  46. @@ -758,7 +758,8 @@ public class WifiSettings extends RestrictedSettingsFragment
  47. int index = 0;
  48. for (AccessPoint accessPoint : accessPoints) {
  49. // Ignore access points that are out of range.
  50. -                    if (accessPoint.getLevel() != -1) {
  51. +                    if (accessPoint.getLevel() != -1 || accessPoint.toString().contains("MOVISTAR WIFI")
  52. +                            || accessPoint.toString().contains("VIVO WIFI")) {
  53. hasAvailableAccessPoints = true;
  54. if (accessPoint.getTag() != null) {
  55. final Preference pref = (Preference) accessPoint.getTag();

(vendor/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf)

[java] view plaincopy
  1. 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
  2. index f6b7121..4d5d52b 100644
  3. --- a/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf
  4. +++ b/mediatek/proprietary/hardware/connectivity/wlan/config/mtk-wpa_supplicant-overlay.conf
  5. @@ -1,3 +1,20 @@
  6. p2p_no_group_iface=1
  7. driver_param=use_p2p_group_interface=1
  8. wowlan_triggers=disconnect
  9. +overlay_loaded=1
  10. +network={
  11. +    ssid="MOVISTAR WIFI"
  12. +        key_mgmt=WPA-EAP IEEE8021X
  13. +        eap=SIM
  14. +        disabled=1
  15. +        priority=1
  16. +        read_only=1
  17. +   }
  18. +network={
  19. +    ssid="VIVO WIFI"
  20. +        key_mgmt=WPA-EAP IEEE8021X
  21. +        eap=SIM
  22. +        disabled=1
  23. +        priority=1
  24. +        read_only=1
  25. +   }

十九:主菜单--》设置--》语言和输入法--》Android keyboard 右边的设置图标---》show correction suggestions--》改成默认选中always hide

(packages/inputmethods/)

[java] view plaincopy
  1. diff --git a/LatinIME/java/res/xml/prefs_screen_correction.xml b/LatinIME/java/res/xml/prefs_screen_correction.xml
  2. index a943dc1..1653b0f 100644
  3. --- a/LatinIME/java/res/xml/prefs_screen_correction.xml
  4. +++ b/LatinIME/java/res/xml/prefs_screen_correction.xml
  5. @@ -51,7 +51,7 @@
  6. android:key="show_suggestions"
  7. android:summary="@string/prefs_show_suggestions_summary"
  8. android:title="@string/prefs_show_suggestions"
  9. -        android:defaultValue="true"
  10. +        android:defaultValue="false"
  11. android:persistent="true" />
  12. <CheckBoxPreference
  13. android:key="pref_key_use_personalized_dicts"
  14. diff --git a/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
  15. index 1833cfb..748e424 100755
  16. --- a/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
  17. +++ b/LatinIME/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
  18. @@ -312,7 +312,7 @@ public class SettingsValues {
  19. .putBoolean(Settings.PREF_SHOW_SUGGESTIONS, !alwaysHide)
  20. .apply();
  21. }
  22. -        return prefs.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
  23. +        return prefs.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, false);
  24. }
  25. private static boolean readBigramPredictionEnabled(final SharedPreferences prefs,

二十:浏览器下载的文件, 默认保存在”Downloads“名字的文件夹

(vendor/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java)

[java] view plaincopy
  1. 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
  2. index 475bbb8..02dc88c 100755
  3. --- a/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java
  4. +++ b/mediatek/proprietary/packages/apps/Browser/ext/src/com/mediatek/browser/ext/DefaultBrowserSettingExt.java
  5. @@ -21,7 +21,7 @@ public class DefaultBrowserSettingExt implements IBrowserSettingExt {
  6. private static final String TAG = "DefaultBrowserSettingsExt";
  7. private static final String DEFAULT_DOWNLOAD_DIRECTORY = "/storage/sdcard0/MyFavorite";
  8. -    private static final String DEFAULT_MY_FAVORITE_FOLDER = "/MyFavorite";
  9. +    private static final String DEFAULT_MY_FAVORITE_FOLDER = "/Download";
  10. private static final String PREF_SEARCH_ENGINE = "search_engine";
  11. 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)

[java] view plaincopy
  1. 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
  2. index 5079bc1..561329f 100755
  3. --- a/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
  4. +++ b/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/BrowserSettings.java
  5. @@ -363,7 +363,7 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
  6. sBrowserSettingExt = Extensions.getSettingPlugin(mContext);
  7. sBrowserSettingExt.setStandardFontFamily(settings, mPrefs);
  8. -        String ua = mCustomUserAgents.get(settings);
  9. +        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";
  10. if (ua != null) {
  11. settings.setUserAgentString(ua);
  12. } else {

二十二:添加通道( 50,919,921,4370),通道号和名字都设为 50,919,921,4370。(通道-channel(英文)-canal(西班牙语)),默认都是enable的,并且默认可以接受所有语言的。

(packages/providers/)

[java] view plaincopy
  1. diff --git a/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java b/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java
  2. index 3d7ac48..c32acf5 100755
  3. --- a/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java
  4. +++ b/TelephonyProvider/src/com/android/providers/telephony/CbProvider.java
  5. @@ -134,8 +134,10 @@ public class CbProvider extends ContentProvider {
  6. // break;
  7. case URL_CHANNEL:
  8. qb.setTables(CbDatabaseHelper.CHANNEL_TABLE);
  9. +            if (selection == null || !selection.contains("sub_id")) {
  10. qb.appendWhere("(sub_id = " + SmsProvider.getSubIdFromUri(url)
  11. + ")");
  12. +            }
  13. break;
  14. case URL_CONVERSATION:
  15. // qb.setTables(CbDatabaseHelper.CONVERSATION_TABLE);

(vendor/)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml b/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml
  2. index 1e224e1..cdb7bce 100755
  3. --- a/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml
  4. +++ b/mediatek/proprietary/packages/apps/Mms/AndroidManifest.xml
  5. @@ -88,6 +88,7 @@
  6. <!-- rcs -->
  7. <uses-permission android:name="com.cmcc.ccs.READ_CCS_MESSAGE"/>
  8. <uses-permission android:name="com.cmcc.ccs.WRITE_CCS_MESSAGE"/>
  9. +    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
  10. <application android:name="MmsApp"
  11. android:label="@string/app_label"
  12. @@ -111,6 +112,9 @@
  13. <service android:name="com.mediatek.cb.cbmsg.CBMessageReceiverService"
  14. android:exported="false" />
  15. +        <service android:name="com.mediatek.cb.cbmsg.CellBroadcastAlertAudio"
  16. +                 android:exported="false" />
  17. +
  18. <service android:name="com.mediatek.omacp.OMACPReceiverService"
  19. android:exported="false" />
  20. @@ -534,6 +538,12 @@ add for MClock update sms database
  21. <intent-filter>
  22. <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
  23. </intent-filter>
  24. +            <intent-filter>
  25. +                <action android:name="android.intent.action.SIM_STATE_CHANGED" />
  26. +            </intent-filter>
  27. </receiver>
  28. <!-- Catch-all receiver for broadcasts that don't have associated security -->
  29. 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
  30. index a30251a..9b25f26 100644
  31. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ConversationListItem.java
  32. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ConversationListItem.java
  33. @@ -558,7 +558,7 @@ public class ConversationListItem extends RelativeLayout implements Contact.Upda
  34. .getString(R.string.cb_default_channel_name);
  35. }
  36. try {
  37. -            from = name + "(" + channelId + ")";
  38. +            from = name;
  39. } catch (NumberFormatException e) {
  40. MmsLog.e(TAG, "format recipient number error!");
  41. }
  42. 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
  43. index 3871434..57aa812 100755
  44. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageListActivity.java
  45. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageListActivity.java
  46. @@ -369,8 +369,7 @@ public class CBMessageListActivity extends Activity implements DraftCache.OnDraf
  47. .getString(R.string.cb_default_channel_name));
  48. } else {
  49. actionBar.setTitle(MmsApp.getApplication().getApplicationContext()
  50. -                            .getString(R.string.cb_default_channel_name)
  51. -                            + "(" + mConversation.getRecipients().get(0).getNumber() + ")");
  52. +                            .getString(R.string.cb_default_channel_name));
  53. }
  54. default:
  55. @@ -402,8 +401,7 @@ public class CBMessageListActivity extends Activity implements DraftCache.OnDraf
  56. ActionBar actionBar = getActionBar();
  57. actionBar.setTitle(MmsApp.getApplication().getApplicationContext().getString(
  58. -            R.string.cb_default_channel_name)
  59. -            + "(" + mConversation.getRecipients().get(0).getNumber() + ")");
  60. +            R.string.cb_default_channel_name));
  61. actionBar.setDisplayHomeAsUpEnabled(true);
  62. // We used to refresh the DraftCache here, but
  63. 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
  64. index 7415026..816a1f5 100755
  65. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiver.java
  66. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiver.java
  67. @@ -64,6 +64,8 @@ import com.android.mms.MmsApp;
  68. import com.android.mms.util.MmsLog;
  69. import com.mediatek.mms.util.PermissionCheckUtil;
  70. +import com.android.internal.telephony.TelephonyIntents;
  71. +
  72. /**
  73. * M:
  74. * Handle incoming SMSes.  Just dispatches the work off to a Service.
  75. @@ -98,7 +100,14 @@ public class CBMessageReceiver extends BroadcastReceiver {
  76. + intent.getAction() + ", result = " + getResultCode());
  77. intent.setClass(context, CBMessageReceiverService.class);
  78. +/*
  79. intent.putExtra("result", getResultCode());
  80. + */
  81. +        android.util.Log.d(" CBMessageReceiver ", " CBMessageReceiver.onReceiveWithPrivilege 97 ");
  82. +        if (!TelephonyIntents.ACTION_SIM_STATE_CHANGED.equals(intent.getAction())) {
  83. +            intent.putExtra("result", getResultCode());
  84. +        }
  85. +// End of
  86. beginStartingService(context, intent);
  87. }
  88. 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
  89. index d3251c7..1e883cc 100755
  90. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiverService.java
  91. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessageReceiverService.java
  92. @@ -81,6 +81,24 @@ import com.mediatek.mms.ext.IOpCBMessageReceiverServiceExt;
  93. import com.mediatek.opmsg.util.OpMessageUtils;
  94. import android.telephony.SubscriptionManager;
  95. +import com.mediatek.mms.util.MmsDialogNotifyUtils;
  96. +/*
  97. + */
  98. +import android.provider.Telephony;
  99. +import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
  100. +import android.content.ContentValues;
  101. +import android.database.Cursor;
  102. +import android.util.Log;
  103. +import com.android.internal.telephony.IccCardConstants;
  104. +import com.android.internal.telephony.TelephonyIntents;
  105. +import android.telephony.SmsManager;
  106. +import android.provider.Telephony.Sms.Intents;
  107. +import android.app.AlertDialog;
  108. +import android.content.DialogInterface;
  109. +import android.view.WindowManager;
  110. +import java.text.SimpleDateFormat;
  111. +import java.util.Date;
  112. +// End of Vanzo:tanglei
  113. /**
  114. * M:
  115. @@ -97,6 +115,19 @@ public class CBMessageReceiverService extends Service {
  116. private static final Uri MESSAGE_URI = Telephony.SmsCb.CONTENT_URI;
  117. private static final int DEFAULT_SUB_ID = 1;
  118. +/*
  119. + */
  120. +    private static final int MESSAGE_SET_STATE = 33;
  121. +    private static final int MESSAGE_SET_CONFIG = 32;
  122. +    private static final String KEYID = "_id";
  123. +    private static final String NAME = "name";
  124. +    private static final String NUMBER = "number";
  125. +    private static final String ENABLE = "enable";
  126. +    private static final String SUBID = "sub_id";
  127. +    private static final Uri CHANNEL_URI = Uri.parse("content://cb/channel");
  128. +    private static final int EVENT_RETRY_ADD_CHANNEL_TIME_OUT = 101;
  129. +    private static boolean isAddingDefaultChannel = false;
  130. +// End of
  131. public Handler mToastHandler = new Handler() {
  132. @Override
  133. @@ -159,6 +190,7 @@ public class CBMessageReceiverService extends Service {
  134. public void handleMessage(Message msg) {
  135. int serviceId = msg.arg1;
  136. Intent intent = (Intent) msg.obj;
  137. +            Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.ServiceHandler.handleMessage 185 serviceId="+serviceId+" msg.what="+msg.what+" intent="+intent); // modify by mtk_debug 2015-3-19;
  138. if (intent != null) {
  139. String action = intent.getAction();
  140. // NEED Replace with CB ACTION
  141. @@ -166,12 +198,266 @@ public class CBMessageReceiverService extends Service {
  142. handleCBMessageReceived(intent);
  143. }
  144. }
  145. +
  146. +            Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.ServiceHandler.handleMessage 162 "); // modify by mtk_debug 2015-3-05;
  147. +            if(TelephonyIntents.ACTION_SIM_STATE_CHANGED.equals(intent.getAction())){
  148. +                Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.ServiceHandler.handleMessage receiver a ACTION_SIM_STATE_CHANGED 164 "); // modify by mtk_debug 2015-3-05;
  149. +                synchronized(this){
  150. +                    handleSIMStateChangedReceived(intent);
  151. +                }
  152. +            }
  153. // NOTE: We MUST not call stopSelf() directly, since we need to
  154. // make sure the wake lock acquired by AlertReceiver is released.
  155. -            CBMessageReceiver.finishStartingService(CBMessageReceiverService.this, serviceId);
  156. +            if(!isAddingDefaultChannel){
  157. +                CBMessageReceiver.finishStartingService(CBMessageReceiverService.this, serviceId);
  158. +            }
  159. }
  160. }
  161. +/*
  162. + */
  163. +    private void handleSIMStateChangedReceived(Intent intent) {
  164. +        Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived 191 "); // modify by mtk_debug 2015-3-05;
  165. +        int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
  166. +        String stateExtra = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
  167. +        // boolean stateExtra = intent.getBooleanExtra("ready",false);
  168. +        Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived 214 stateExtra="+stateExtra);
  169. +        if(IccCardConstants.INTENT_VALUE_ICC_READY.equals(stateExtra)){
  170. +            // if(stateExtra){
  171. +            if(queryIfChannelInDatabase(subId,"919",919))
  172. +            {
  173. +                Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
  174. +                isAddingDefaultChannel=false;
  175. +            }else{
  176. +                Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
  177. +                if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*这里会先把CB打开*/
  178. +                {
  179. +                    Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
  180. +                    addCustomChanneltoList(subId,"919",919);
  181. +                    isAddingDefaultChannel=false;
  182. +
  183. +                    //请注意:如果贵司做了开机默认关闭小区广播的feature,请取消下面这句code的注释
  184. +                    //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于关闭小区广播开关
  185. +
  186. +                }else{
  187. +
  188. +                    Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
  189. +                    //add retry
  190. +                    if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
  191. +                        Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
  192. +                        Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
  193. +                        mServiceHandler.sendMessageDelayed(msg, 2000);
  194. +                        isAddingDefaultChannel=true;
  195. +                    }
  196. +
  197. +
  198. +                }
  199. +
  200. +            }
  201. +            if(queryIfChannelInDatabase(subId,"50",50))
  202. +            {
  203. +                Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
  204. +                isAddingDefaultChannel=false;
  205. +            }else{
  206. +                Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
  207. +                if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*这里会先把CB打开*/
  208. +                {
  209. +                    Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
  210. +                    addCustomChanneltoList(subId,"50",50);
  211. +                    isAddingDefaultChannel=false;
  212. +
  213. +                    //请注意:如果贵司做了开机默认关闭小区广播的feature,请取消下面这句code的注释
  214. +                    //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于关闭小区广播开关
  215. +
  216. +                }else{
  217. +
  218. +                    Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
  219. +                    //add retry
  220. +                    if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
  221. +                        Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
  222. +                        Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
  223. +                        mServiceHandler.sendMessageDelayed(msg, 2000);
  224. +                        isAddingDefaultChannel=true;
  225. +                    }
  226. +
  227. +
  228. +                }
  229. +
  230. +            }
  231. +            if(queryIfChannelInDatabase(subId,"4370",4370))
  232. +            {
  233. +                Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
  234. +                isAddingDefaultChannel=false;
  235. +            }else{
  236. +                Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
  237. +                if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*这里会先把CB打开*/
  238. +                {
  239. +                    Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
  240. +                    addCustomChanneltoList(subId,"4370",4370);
  241. +                    isAddingDefaultChannel=false;
  242. +
  243. +                    //请注意:如果贵司做了开机默认关闭小区广播的feature,请取消下面这句code的注释
  244. +                    //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于关闭小区广播开关
  245. +
  246. +                }else{
  247. +
  248. +                    Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
  249. +                    //add retry
  250. +                    if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
  251. +                        Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
  252. +                        Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
  253. +                        mServiceHandler.sendMessageDelayed(msg, 2000);
  254. +                        isAddingDefaultChannel=true;
  255. +                    }
  256. +
  257. +
  258. +                }
  259. +
  260. +            }
  261. +            if(queryIfChannelInDatabase(subId,"921",921))
  262. +            {
  263. +                Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 in database");
  264. +                isAddingDefaultChannel=false;
  265. +            }else{
  266. +                Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived subid="+subId+" channel1 50 not in database 699 "); // modify by mtk_debug 2015-3-02;
  267. +                if(SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(true))/*这里会先把CB打开*/
  268. +                {
  269. +                    Log.d(TAG, " CBMessageReceiverService.handleSIMStateChangedReceived addCustomChanneltoList(subId,Channel1,50);");
  270. +                    addCustomChanneltoList(subId,"921",921);
  271. +                    isAddingDefaultChannel=false;
  272. +
  273. +                    //请注意:如果贵司做了开机默认关闭小区广播的feature,请取消下面这句code的注释
  274. +                    //SmsManager.getSmsManagerForSubscriptionId(subId).activateCellBroadcastSms(false); //用于关闭小区广播开关
  275. +
  276. +                }else{
  277. +
  278. +                    Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived activateCellBroadcastSms fail 716 "); // modify by mtk_debug 2015-3-05;
  279. +                    //add retry
  280. +                    if (!mServiceHandler.hasMessages(EVENT_RETRY_ADD_CHANNEL_TIME_OUT)) {
  281. +                        Message msg = mServiceHandler.obtainMessage(EVENT_RETRY_ADD_CHANNEL_TIME_OUT,intent);
  282. +                        Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.handleSIMStateChangedReceived send retry message 235 "); // modify by mtk_debug 2015-3-19;
  283. +                        mServiceHandler.sendMessageDelayed(msg, 2000);
  284. +                        isAddingDefaultChannel=true;
  285. +                    }
  286. +
  287. +
  288. +                }
  289. +
  290. +            }
  291. +
  292. +        }
  293. +
  294. +    }
  295. +
  296. +    private void addCustomChanneltoList(int mSubId,String channelName,int channelNum){
  297. +        Log.d(TAG, "addCustomChanneltoList: mSubId=" + mSubId
  298. +                + ", channelName= " + channelName + ", channelNum= " + channelNum);
  299. +
  300. +        SmsBroadcastConfigInfo[] objectList = new SmsBroadcastConfigInfo[1];
  301. +        objectList[0] = new SmsBroadcastConfigInfo(channelNum,channelNum, -1, -1, true);
  302. +
  303. +        Log.d(TAG, "addCustomChanneltoList: setCellBroadcastSmsConfig");
  304. +        //SmsManagerEx.getDefault().setCellBroadcastSmsConfig(objectList, objectList, mSimId);
  305. +        boolean isSetConfigSuccess = SmsManager.getSmsManagerForSubscriptionId(mSubId).setCellBroadcastSmsConfig(objectList, objectList);
  306. +        if(isSetConfigSuccess){
  307. +            Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.addCustomChanneltoList set channel " +channelNum +" success 784 "); // modify by mtk_debug 2015-3-05;
  308. +            addChannelToDatabase(mSubId,channelName,channelNum);
  309. +        }else{
  310. +            Log.d(" CBMessageReceiverService ", " CBMessageReceiverService.addCustomChanneltoList set channel "+ channelNum +" failed 786 "); // modify by mtk_debug 2015-3-05;
  311. +        }
  312. +
  313. +
  314. +        Log.d(TAG, " CBMessageReceiverService addCustomChanneltoList: function end");
  315. +    }
  316. +
  317. +
  318. +
  319. +    private boolean addChannelToDatabase(int mSubId,String channelName,int channelNum){
  320. +            // ClearChannel();
  321. +        Log.d(TAG, "addChannelToDatabase: mSubId=" + mSubId
  322. +                + ", channelName= " + channelName + ", channelNum= " + channelNum);
  323. +        String[] projection = new String[] { NUMBER, SUBID};
  324. +        String SELECTIONNum = "(" + NUMBER + " = " + channelNum + ")";
  325. +        String SELECTIONid = "(" + SUBID + " = " + mSubId + ")";
  326. +        Cursor cursornum = null;
  327. +        Cursor cursorid = null;
  328. +
  329. +        Cursor cursorzz = this.getContentResolver().query(CHANNEL_URI,
  330. +                projection,
  331. +                NUMBER + " = ? AND " +
  332. +                SUBID + " = ?",
  333. +                new String[] {String.valueOf(channelNum), String.valueOf(mSubId)},
  334. +                null);
  335. +        Log.d(TAG, "addChannelToDatabase: cursor.getCount"+cursorzz.getCount());
  336. +        if(cursorzz.getCount() == 0){//if ((cursornum.getCount() == 0)&&(cursorid.getCount() == 0)){
  337. +            Log.d(" CBMessageReceiverService ", " SmsReceiverService.addChannelToDatabase add mSubId=" + mSubId
  338. +                    + ", channelName= " + channelName + ", channelNum= " + channelNum +"to database"); // modify by mtk_debug 2015-3-05;
  339. +            ContentValues values = new ContentValues();
  340. +            values.put(NAME,channelName);
  341. +            values.put(NUMBER, channelNum);
  342. +            values.put(ENABLE, true);   //请注意:如果贵司希望预置的频道默认为disable状态,把true改成false即可
  343. +            values.put(SUBID, mSubId);
  344. +            try {
  345. +                //if(mSimId==PhoneConstants.SUB1){
  346. +                this.getContentResolver().insert(CHANNEL_URI, values);
  347. +                //}else if(mSimId==PhoneConstants.SUB2){
  348. +                // this.getContentResolver().insert(CHANNEL_URI1, values);
  349. +                //}
  350. +            } catch (Exception e){
  351. +                Log.d(" CBMessageReceiverService ", " SmsReceiverService.addChannelToDatabase exception 828 "); // modify by mtk_debug 2015-3-05;
  352. +                //cursornum.close();
  353. +                //cursorid.close();
  354. +                cursorzz.close();
  355. +                return false;
  356. +            }
  357. +            //cursornum.close();
  358. +            // cursorid.close();
  359. +            cursorzz.close();
  360. +            return true;
  361. +        }
  362. +        else{
  363. +            //cursornum.close();
  364. +            //cursorid.close();
  365. +            cursorzz.close();
  366. +            return false;
  367. +        }
  368. +
  369. +    }
  370. +
  371. +
  372. +    private boolean queryIfChannelInDatabase(int mSubId,String channelName,int channelNum){
  373. +
  374. +        Log.d(TAG, "queryIfChannelInDatabase: mSubId=" + mSubId
  375. +                + ", channelName= " + channelName + ", channelNum= " + channelNum);
  376. +        String[] projection = new String[] { NUMBER, SUBID};
  377. +        String SELECTIONNum = "(" + NUMBER + " = " + channelNum + ")";
  378. +        String SELECTIONid = "(" + SUBID + " = " + mSubId + ")";
  379. +        Cursor cursornum = null;
  380. +        Cursor cursorid = null;
  381. +
  382. +        Cursor cursorzz = this.getContentResolver().query(CHANNEL_URI,
  383. +                projection,
  384. +                NUMBER + " = ? AND " +
  385. +                SUBID + " = ?",
  386. +                new String[] {String.valueOf(channelNum),String.valueOf(mSubId)},
  387. +                null);
  388. +
  389. +        if(cursorzz != null&&cursorzz.getCount() > 0){
  390. +            //if ((cursornum.getCount() != 0)&&(cursorid.getCount() != 0)){
  391. +            Log.d(TAG, "queryIfChannelInDatabase: cursor.getCount"+cursorzz.getCount());
  392. +            cursorzz.close();
  393. +            return true;
  394. +
  395. +
  396. +        }else{
  397. +            cursorzz.close();
  398. +            Log.d(TAG, "queryIfChannelInDatabase: return false");
  399. +            return false;
  400. +        }
  401. +
  402. +    }
  403. +// End of Vanzo:tanglei
  404. +
  405. private void handleCBMessageReceived(Intent intent) {
  406. // TODO need replace with cb message.
  407. Bundle extras = intent.getExtras();
  408. @@ -200,7 +486,37 @@ public class CBMessageReceiverService extends Service {
  409. }
  410. if (messageUri != null) {
  411. -            CBMessagingNotification.updateNewMessageIndicator(subId, this, true);
  412. +            if (message.getServiceCategory() == 919 ||
  413. +                    message.getServiceCategory() == 50 ||
  414. +                    message.getServiceCategory() == 921) {
  415. +                //alert repeat with audio and vibrate
  416. +                CellBroadcastAlertWakeLock.acquireScreenCpuWakeLock(this);
  417. +                Intent audioIntent = new Intent(this, CellBroadcastAlertAudio.class);
  418. +                audioIntent.setAction(CellBroadcastAlertAudio.ACTION_START_ALERT_AUDIO);
  419. +                audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_DURATION_EXTRA, 10500);
  420. +                audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_VIBRATE_EXTRA, true);
  421. +                startService(audioIntent);
  422. +                SimpleDateFormat  sdf = new SimpleDateFormat("hh:mm aa.  |  dd/MM/yyyy");
  423. +                String time = sdf.format(new Date(System.currentTimeMillis())).toString();
  424. +                final Context sContext = getApplicationContext();
  425. +                AlertDialog alert = new AlertDialog.Builder(sContext)
  426. +                    .setTitle("Alerta de Emergencia")
  427. +                    .setMessage(message.getMessageBody() + "\n\n" + time)
  428. +                    .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
  429. +                            @Override
  430. +                            public void onClick(DialogInterface dialog, int which) {
  431. +                                sContext.stopService(new Intent(sContext, CellBroadcastAlertAudio.class));
  432. +                                dialog.dismiss();
  433. +                            }
  434. +                        })
  435. +                    .create();
  436. +                alert.getWindow().setType(
  437. +                        WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
  438. +                alert.setCancelable(false);
  439. +                alert.show();
  440. +            } else {
  441. +                CBMessagingNotification.updateNewMessageIndicator(subId, this, true);
  442. +            }
  443. }
  444. }
  445. 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
  446. index f9c161e..addf59d 100755
  447. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessagingNotification.java
  448. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CBMessagingNotification.java
  449. @@ -268,7 +268,6 @@ public class CBMessagingNotification {
  450. //String address = Conversation.getChannelNameFromId(context, channel_id);
  451. String address;
  452. address = CBMessage.getCBChannelName(subId, channelId);
  453. -            address = address + "(" + channelId + ")";
  454. CBNotificationInfo info = getNewMessageNotificationInfo(
  455. address, body, context, R.drawable.stat_notify_sms,
  456. null, threadId, timeMillis, cursor.getCount(),
  457. 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
  458. new file mode 100644
  459. index 0000000..f868e44
  460. --- /dev/null
  461. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertAudio.java
  462. @@ -0,0 +1,435 @@
  463. +/*
  464. + * Copyright (C) 2011 The Android Open Source Project
  465. + *
  466. + * Licensed under the Apache License, Version 2.0 (the "License");
  467. + * you may not use this file except in compliance with the License.
  468. + * You may obtain a copy of the License at
  469. + *
  470. + *      http://www.apache.org/licenses/LICENSE-2.0
  471. + *
  472. + * Unless required by applicable law or agreed to in writing, software
  473. + * distributed under the License is distributed on an "AS IS" BASIS,
  474. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  475. + * See the License for the specific language governing permissions and
  476. + * limitations under the License.
  477. + */
  478. +
  479. +package com.mediatek.cb.cbmsg;
  480. +
  481. +import android.app.Service;
  482. +import android.content.BroadcastReceiver;
  483. +import android.content.Context;
  484. +import android.content.Intent;
  485. +import android.content.IntentFilter;
  486. +import android.content.SharedPreferences;
  487. +import android.content.res.AssetFileDescriptor;
  488. +import android.content.res.Resources;
  489. +import android.media.AudioManager;
  490. +import android.media.MediaPlayer;
  491. +import android.media.MediaPlayer.OnErrorListener;
  492. +import android.os.Handler;
  493. +import android.os.IBinder;
  494. +import android.os.Message;
  495. +import android.os.Vibrator;
  496. +import android.speech.tts.TextToSpeech;
  497. +import android.telephony.PhoneStateListener;
  498. +import android.telephony.TelephonyManager;
  499. +import android.util.Log;
  500. +import java.io.IOException;
  501. +import java.util.HashMap;
  502. +import java.util.ArrayList;
  503. +import java.util.Locale;
  504. +import com.android.mms.R;
  505. +
  506. +/**
  507. + * Manages alert audio and vibration and text-to-speech. Runs as a service so that
  508. + * it can continue to play if another activity overrides the CellBroadcastListActivity.
  509. + */
  510. +public class CellBroadcastAlertAudio extends Service {
  511. +    private static final String TAG = "CellBroadcastAlertAudio";
  512. +    private static final int PRESIDENT_ALERT_ID = 4370;
  513. +    /** Action to start playing alert audio/vibration/speech. */
  514. +    static final String ACTION_START_ALERT_AUDIO = "ACTION_START_ALERT_AUDIO";
  515. +
  516. +    /** Extra for alert audio duration (from settings). */
  517. +    public static final String ALERT_AUDIO_DURATION_EXTRA =
  518. +            "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_DURATION";
  519. +
  520. +    /** Extra for message body to speak (if speech enabled in settings). */
  521. +    public static final String ALERT_AUDIO_MESSAGE_BODY =
  522. +            "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_BODY";
  523. +
  524. +    /** Extra for text-to-speech language (if speech enabled in settings). */
  525. +    public static final String ALERT_AUDIO_MESSAGE_LANGUAGE =
  526. +            "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_LANGUAGE";
  527. +
  528. +    /** Extra for message ID . */
  529. +    public static final String ALERT_AUDIO_MESSAGE_ID =
  530. +            "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_ID";
  531. +
  532. +    /** Extra for alert audio vibration enabled (from settings). */
  533. +    public static final String ALERT_AUDIO_VIBRATE_EXTRA =
  534. +            "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_VIBRATE";
  535. +
  536. +    /** Extra for alert audio ETWS behavior (always vibrate, even in silent mode). */
  537. +    public static final String ALERT_AUDIO_ETWS_VIBRATE_EXTRA =
  538. +            "com.mediatek.cellbroadcastreceiver.ALERT_AUDIO_ETWS_VIBRATE";
  539. +
  540. +    private static final String TTS_UTTERANCE_ID =
  541. +                    "com.mediatek.cellbroadcastreceiver.UTTERANCE_ID";
  542. +
  543. +    /** Pause duration between alert sound and alert speech. */
  544. +    private static final int PAUSE_DURATION_BEFORE_SPEAKING_MSEC = 1000;
  545. +
  546. +    //volume change action
  547. +    private static final String VOLUME_CHANGED_ACTION = "android.media.VOLUME_CHANGED_ACTION";
  548. +
  549. +    /** Vibration uses the same on/off pattern as the CMAS alert tone */
  550. +    private static final long[] sVibratePattern = { 0, 2000, 500, 1000, 500, 1000, 500,
  551. +            2000, 500, 1000, 500, 1000};
  552. +
  553. +    private static final int STATE_IDLE = 0;
  554. +    private static final int STATE_ALERTING = 1;
  555. +    private static final int STATE_PAUSING = 2;
  556. +    private static final int STATE_SPEAKING = 3;
  557. +
  558. +    // Internal messages
  559. +    private static final int ALERT_SOUND_FINISHED = 1000;
  560. +    private static final int ALERT_PAUSE_FINISHED = 1001;
  561. +    /// M: add for repeat alert feature. @{
  562. +    private static final String PREF_NAME = "com.mediatek.cellbroadcastreceiver_preferences";
  563. +    private static final int REPEAT_ALERT_START = 1002;
  564. +    private static final int[] sRepeatTimes = { 60000, 60000 * 3, 60000 * 5 };
  565. +    private boolean mEnableRepeat = true;
  566. +    private int mDuration;
  567. +    private ArrayList<Integer> mRepeatPattern;
  568. +    /// @}
  569. +
  570. +    private int mState;
  571. +
  572. +    private int mMessageId;
  573. +    private String mMessageBody;
  574. +    private String mMessageLanguage;
  575. +    private boolean mEnableVibrate;
  576. +    private boolean mEnableAudio;
  577. +    private boolean mRegisteredVolumeReceiver = false;
  578. +
  579. +    private Vibrator mVibrator;
  580. +    private MediaPlayer mMediaPlayer;
  581. +    private AudioManager mAudioManager;
  582. +    private TelephonyManager mTelephonyManager;
  583. +    private int mInitialCallState;
  584. +
  585. +    private final Handler mHandler = new Handler() {
  586. +        @Override
  587. +        public void handleMessage(Message msg) {
  588. +            switch (msg.what) {
  589. +                case ALERT_SOUND_FINISHED:
  590. +                    /// @}
  591. +                    stop();     // stop alert sound
  592. +                    // if we can speak the message text
  593. +                    if (mMessageBody != null) {
  594. +                        mHandler.sendMessageDelayed(mHandler.obtainMessage(ALERT_PAUSE_FINISHED),
  595. +                                PAUSE_DURATION_BEFORE_SPEAKING_MSEC);
  596. +                        mState = STATE_PAUSING;
  597. +                    } else if (!mEnableRepeat || mRepeatPattern.isEmpty()) { ///M:
  598. +                        // add for repeat alert feature. do not stop service until end repeat.
  599. +                        stopSelf();
  600. +                        mState = STATE_IDLE;
  601. +                    }
  602. +                    break;
  603. +
  604. +                case ALERT_PAUSE_FINISHED:
  605. +                    if (mMessageBody != null) {
  606. +                        mState = STATE_SPEAKING;
  607. +                    } else if (!mEnableRepeat || mRepeatPattern.isEmpty()) { ///M:
  608. +                        // add for repeat alert feature. do not stop service until end repeat.
  609. +                        Log.w(TAG, "TTS engine not ready or language not supported");
  610. +                        stopSelf();
  611. +                        mState = STATE_IDLE;
  612. +                    }
  613. +
  614. +                    break;
  615. +
  616. +                ///M: add for repeat alert feature. @{
  617. +                case REPEAT_ALERT_START:
  618. +                    schedulePlay();
  619. +                    break;
  620. +                /// @}
  621. +                default:
  622. +                    Log.e(TAG, "Handler received unknown message, what=" + msg.what);
  623. +            }
  624. +        }
  625. +    };
  626. +
  627. +    private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
  628. +        @Override
  629. +        public void onCallStateChanged(int state, String ignored) {
  630. +            // Stop the alert sound and speech if the call state changes.
  631. +            if (state != TelephonyManager.CALL_STATE_IDLE
  632. +                    && state != mInitialCallState) {
  633. +                stopSelf();
  634. +            }
  635. +        }
  636. +    };
  637. +
  638. +    private BroadcastReceiver volumeChangeReceiver = new BroadcastReceiver() {
  639. +
  640. +        @Override
  641. +        public void onReceive(Context arg0, Intent arg1) {
  642. +            Log.d(TAG, "receive volume change broadcast, stop sound and vibration alert");
  643. +            //stop();
  644. +        }
  645. +
  646. +    };
  647. +
  648. +
  649. +    @Override
  650. +    public void onCreate() {
  651. +        mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
  652. +        mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
  653. +        // Listen for incoming calls to kill the alarm.
  654. +        mTelephonyManager =
  655. +                (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
  656. +        mTelephonyManager.listen(
  657. +                mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
  658. +    }
  659. +
  660. +    @Override
  661. +    public void onDestroy() {
  662. +        //unregister volume register
  663. +        if (mRegisteredVolumeReceiver) {
  664. +            mRegisteredVolumeReceiver = false;
  665. +            unregisterReceiver(volumeChangeReceiver);
  666. +        }
  667. +
  668. +        /// M: add for repeat alert feature. cancel the next schedule when destroy. @{
  669. +        if (mEnableRepeat) {
  670. +            cancelRepeat();
  671. +        }
  672. +        /// @}
  673. +
  674. +        // stop audio, vibration and TTS
  675. +        stop();
  676. +        // Stop listening for incoming calls.
  677. +        mTelephonyManager.listen(mPhoneStateListener, 0);
  678. +        // release CPU wake lock acquired by CellBroadcastAlertService
  679. +        CellBroadcastAlertWakeLock.releaseCpuLock();
  680. +    }
  681. +
  682. +    @Override
  683. +    public IBinder onBind(Intent intent) {
  684. +        return null;
  685. +    }
  686. +
  687. +    @Override
  688. +    public int onStartCommand(Intent intent, int flags, int startId) {
  689. +        // No intent, tell the system not to restart us.
  690. +        if (intent == null) {
  691. +            stopSelf();
  692. +            return START_NOT_STICKY;
  693. +        }
  694. +
  695. +        ///M: add for repeat alert feature.
  696. +        cancelRepeat();
  697. +        initAlertSequence();
  698. +
  699. +        // This extra should always be provided by CellBroadcastAlertService,
  700. +        // but default to 10.5 seconds just to be safe (CMAS requirement).
  701. +        int duration = intent.getIntExtra(ALERT_AUDIO_DURATION_EXTRA, 10500);
  702. +        mMessageId = intent.getIntExtra(ALERT_AUDIO_MESSAGE_ID, 0);
  703. +        // Get text to speak (if enabled by user)
  704. +        mMessageBody = intent.getStringExtra(ALERT_AUDIO_MESSAGE_BODY);
  705. +        mMessageLanguage = intent.getStringExtra(ALERT_AUDIO_MESSAGE_LANGUAGE);
  706. +
  707. +        mEnableVibrate = intent.getBooleanExtra(ALERT_AUDIO_VIBRATE_EXTRA, true);
  708. +        boolean forceVibrate = intent.getBooleanExtra(ALERT_AUDIO_ETWS_VIBRATE_EXTRA, false);
  709. +
  710. +        mEnableAudio = true;
  711. +        Log.d(TAG, "mEnableAudio:" + mEnableAudio + ", mEnableVibrate:" + mEnableVibrate);
  712. +        ///M: add for repeat alert. @{
  713. +        mDuration = duration;
  714. +        schedulePlay();
  715. +        /// @}
  716. +        //register volume change receiver
  717. +        if (!mRegisteredVolumeReceiver) {
  718. +            IntentFilter intentFilter = new IntentFilter();
  719. +            intentFilter.addAction(VOLUME_CHANGED_ACTION);
  720. +            registerReceiver(volumeChangeReceiver, intentFilter);
  721. +            mRegisteredVolumeReceiver = true;
  722. +        }
  723. +
  724. +        // Record the initial call state here so that the new alarm has the
  725. +        // newest state.
  726. +        mInitialCallState = mTelephonyManager.getCallState();
  727. +
  728. +        return START_STICKY;
  729. +    }
  730. +
  731. +    // Volume suggested by media team for in-call alarms.
  732. +    private static final float IN_CALL_VOLUME = 0.125f;
  733. +
  734. +    /**
  735. +     * Start playing the alert sound, and send delayed message when it's time to stop.
  736. +     * @param duration the alert sound duration in milliseconds
  737. +     */
  738. +    private void play() {
  739. +        // stop() checks to see if we are already playing.
  740. +        stop();
  741. +
  742. +
  743. +        // Start the vibration first.
  744. +        if (mEnableVibrate || forceAlert()) {
  745. +            mVibrator.vibrate(sVibratePattern, -1);
  746. +        }
  747. +
  748. +        if (mEnableAudio || forceAlert()) {
  749. +            // future optimization: reuse media player object
  750. +            mMediaPlayer = new MediaPlayer();
  751. +            mMediaPlayer.setOnErrorListener(new OnErrorListener() {
  752. +                public boolean onError(MediaPlayer mp, int what, int extra) {
  753. +                    Log.e(TAG, "Error occurred while playing audio.");
  754. +                    mp.stop();
  755. +                    mp.release();
  756. +                    mMediaPlayer = null;
  757. +                    return true;
  758. +                }
  759. +            });
  760. +
  761. +            try {
  762. +                // Check if we are in a call. If we are, play the alert
  763. +                // sound at a low volume to not disrupt the call.
  764. +                if (mTelephonyManager.getCallState()
  765. +                        != TelephonyManager.CALL_STATE_IDLE) {
  766. +                    Log.v(TAG, "in call: reducing volume");
  767. +                    mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);
  768. +                }
  769. +                else {
  770. +                    float volume = 1.0f;
  771. +
  772. +                Log.d(TAG , "Alert volume: " + volume);
  773. +                mMediaPlayer.setVolume(volume, volume);
  774. +               }
  775. +
  776. +                // start playing alert audio (unless master volume is vibrate only or silent).
  777. +                setDataSourceFromResource(getResources(), mMediaPlayer,
  778. +                        R.raw.attention_signal);
  779. +
  780. +                int streamType = AudioManager.STREAM_NOTIFICATION;
  781. +                streamType = AudioManager.STREAM_ALARM;
  782. +                mAudioManager.setStreamVolume(streamType,
  783. +                        mAudioManager.getStreamMaxVolume(streamType),
  784. +                        AudioManager.FLAG_PLAY_SOUND);
  785. +                mAudioManager.requestAudioFocus(null, streamType,
  786. +                        AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
  787. +                startAlarm(mMediaPlayer);
  788. +            } catch (IllegalStateException ex) {
  789. +                Log.e(TAG, "Failed to play alert sound", ex);
  790. +            } catch (IOException e) {
  791. +                Log.e(TAG, "IOException");
  792. +            }
  793. +        }
  794. +
  795. +        // stop alert after the specified duration
  796. +        mHandler.sendMessageDelayed(mHandler.obtainMessage(ALERT_SOUND_FINISHED), mDuration);
  797. +
  798. +        mState = STATE_ALERTING;
  799. +    }
  800. +
  801. +    // Do the common stuff when starting the alarm.
  802. +    private void startAlarm(MediaPlayer player)
  803. +            throws java.io.IOException, IllegalArgumentException, IllegalStateException {
  804. +        int streamType = AudioManager.STREAM_NOTIFICATION;
  805. +        streamType = AudioManager.STREAM_ALARM;
  806. +        player.setAudioStreamType(streamType);
  807. +        player.setLooping(true);
  808. +        player.prepare();
  809. +        player.start();
  810. +    }
  811. +
  812. +    private static void setDataSourceFromResource(Resources resources,
  813. +            MediaPlayer player, int res) throws java.io.IOException {
  814. +        AssetFileDescriptor afd = resources.openRawResourceFd(res);
  815. +        if (afd != null) {
  816. +            player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
  817. +                    afd.getLength());
  818. +            afd.close();
  819. +        }
  820. +    }
  821. +
  822. +    /**
  823. +     * Stops alert audio and speech.
  824. +     */
  825. +    public void stop() {
  826. +
  827. +        mHandler.removeMessages(ALERT_SOUND_FINISHED);
  828. +        mHandler.removeMessages(ALERT_PAUSE_FINISHED);
  829. +
  830. +        if (mState == STATE_ALERTING) {
  831. +            // Stop audio playing
  832. +            if (mMediaPlayer != null) {
  833. +                try {
  834. +                    mMediaPlayer.stop();
  835. +                    mMediaPlayer.release();
  836. +                } catch (IllegalStateException e) {
  837. +                    // catch "Unable to retrieve AudioTrack pointer for stop()" exception
  838. +                    Log.e(TAG, "exception trying to stop media player");
  839. +                }
  840. +                mMediaPlayer = null;
  841. +            }
  842. +
  843. +            // Stop vibrator
  844. +            mVibrator.cancel();
  845. +        }
  846. +        mAudioManager.abandonAudioFocus(null);
  847. +        mState = STATE_IDLE;
  848. +    }
  849. +
  850. +    private static void log(String msg) {
  851. +        Log.d(TAG, msg);
  852. +    }
  853. +
  854. +    /**
  855. +     * M: add for repeat alert feature.
  856. +     */
  857. +    private void initAlertSequence() {
  858. +        mEnableRepeat = true;
  859. +        mRepeatPattern = new ArrayList<Integer>();
  860. +        if (mEnableRepeat) {
  861. +            for (int i : sRepeatTimes) {
  862. +                mRepeatPattern.add(i);
  863. +            }
  864. +        }
  865. +    }
  866. +
  867. +    /**
  868. +     * M: add for repeat alert feature.
  869. +     * @param duration the duration of one alert time.
  870. +     */
  871. +    private void schedulePlay() {
  872. +         //if (mAudioManager.getRingerMode() != AudioManager.RINGER_MODE_SILENT) {
  873. +            play();
  874. +         //}
  875. +        if (mEnableRepeat) {
  876. +            mHandler.sendMessageDelayed(mHandler.obtainMessage(REPEAT_ALERT_START), mDuration + 500);
  877. +        }
  878. +    }
  879. +
  880. +    /**
  881. +     * M: add for repeat alert feature.
  882. +     */
  883. +    public void cancelRepeat() {
  884. +        mHandler.removeMessages(REPEAT_ALERT_START);
  885. +    }
  886. +
  887. +    /**
  888. +     * M: force alarm (except first alert) in silent mode.
  889. +     * @return
  890. +     */
  891. +    private boolean forceAlert() {
  892. +        boolean isSilentMode = mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT;
  893. +        boolean isRepeating = mEnableRepeat && (mRepeatPattern.size() < sRepeatTimes.length);
  894. +        return isSilentMode && isRepeating;
  895. +    }
  896. +
  897. +}
  898. 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
  899. new file mode 100644
  900. index 0000000..ac296db
  901. --- /dev/null
  902. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbmsg/CellBroadcastAlertWakeLock.java
  903. @@ -0,0 +1,52 @@
  904. +/*
  905. + * Copyright (C) 2012 The Android Open Source Project
  906. + *
  907. + * Licensed under the Apache License, Version 2.0 (the "License");
  908. + * you may not use this file except in compliance with the License.
  909. + * You may obtain a copy of the License at
  910. + *
  911. + *      http://www.apache.org/licenses/LICENSE-2.0
  912. + *
  913. + * Unless required by applicable law or agreed to in writing, software
  914. + * distributed under the License is distributed on an "AS IS" BASIS,
  915. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  916. + * See the License for the specific language governing permissions and
  917. + * limitations under the License.
  918. + */
  919. +
  920. +package com.mediatek.cb.cbmsg;
  921. +
  922. +import android.content.Context;
  923. +import android.os.PowerManager;
  924. +import android.util.Log;
  925. +
  926. +/**
  927. + * Hold a wakelock that can be acquired in the CellBroadcastAlertService and
  928. + * released in the CellBroadcastAlertFullScreen Activity.
  929. + */
  930. +class CellBroadcastAlertWakeLock {
  931. +    private static final String TAG = "CellBroadcastAlertWakeLock";
  932. +
  933. +    private static PowerManager.WakeLock sCpuWakeLock;
  934. +
  935. +    private CellBroadcastAlertWakeLock() {}
  936. +
  937. +    static void acquireScreenCpuWakeLock(Context context) {
  938. +        if (sCpuWakeLock != null) {
  939. +            return;
  940. +        }
  941. +        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
  942. +        sCpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
  943. +                | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, TAG);
  944. +        sCpuWakeLock.acquire();
  945. +        Log.d(TAG, "acquired screen + CPU wake lock");
  946. +    }
  947. +
  948. +    static void releaseCpuLock() {
  949. +        if (sCpuWakeLock != null) {
  950. +            sCpuWakeLock.release();
  951. +            sCpuWakeLock = null;
  952. +            Log.d(TAG, "released screen + CPU wake lock");
  953. +        }
  954. +    }
  955. +}
  956. 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
  957. index c6a152b..a15c329 100755
  958. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbsettings/CellBroadcastSettings.java
  959. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/cb/cbsettings/CellBroadcastSettings.java
  960. @@ -218,6 +218,13 @@ public class CellBroadcastSettings extends TimeConsumingPreferenceActivity
  961. } else {
  962. channel.setSummary(R.string.disable);
  963. }
  964. +            if (title.equals("919(919)")
  965. +                    || title.equals("50(50)")
  966. +                    || title.equals("4370(4370)")
  967. +                    || title.equals("921(921)")) {
  968. +                channel.setEnabled(false);
  969. +                channel.setSelectable(false);
  970. +            }
  971. channel.setOnPreferenceClickListener(new OnPreferenceClickListener() {
  972. public boolean onPreferenceClick(Preference arg0) {
  973. @@ -560,6 +567,7 @@ public class CellBroadcastSettings extends TimeConsumingPreferenceActivity
  974. }
  975. String jStr = String.valueOf(j);
  976. CellBroadcastChannel channel = getChannelObjectFromKey(jStr);
  977. +/* Vanzo:tanglei on: Thu, 08 Sep 2016 10:34:04 +0800
  978. if (channel != null) {
  979. channel.setChannelState(state);
  980. } else {
  981. @@ -573,6 +581,8 @@ public class CellBroadcastSettings extends TimeConsumingPreferenceActivity
  982. mChannelArray.add(newChannel);
  983. mChannelMap.put(jStr, newChannel);
  984. }
  985. + */
  986. +// End of
  987. }
  988. }
  989. }
[java] view plaincopy
  1. 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
  2. index 38f7aa5..dcf14db 100755
  3. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/mtk_string.xml
  4. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/mtk_string.xml
  5. @@ -43,7 +43,7 @@
  6. <string name="enable_repeat_alert_summary">Para rec al usuario de alertas no leídos interm</string>
  7. <string name="enable_all_alert_title">Todas alertas act</string>
  8. <string name="enable_all_imminent_alerts_title">Todos mens de amen inm</string>
  9. -    <string name="enable_cell_broadcast_title">Alertas de Em</string>
  10. +    <string name="enable_cell_broadcast_title">Alerta de Emergencia</string>
  11. <string name="alert_sound_volume">Volumen de sonido de alerta</string>
  12. <string name="alert_volume_summary">Aj de vol del sonido</string>
  13. -</resources>
  14. \ No newline at end of file
  15. +</resources>
  16. 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
  17. index a2460bb..e8fc8ab 100755
  18. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/strings.xml
  19. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-es-rUS/strings.xml
  20. @@ -11,10 +11,10 @@
  21. limitations under the License.
  22. -->
  23. <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
  24. -    <string name="app_label">Alertas de Em</string>
  25. +    <string name="app_label">Alerta de Emergencia</string>
  26. <string name="sms_cb_settings">Config del Conm de Alertas</string>
  27. <string name="button_dismiss">"Aceptar"</string>
  28. -    <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>
  29. +    <string name="no_cell_broadcasts">"No hay alertas activas en tu zona."</string>
  30. <string name="menu_preferences">"Configuración"</string>
  31. <string name="menu_delete_all">Elim todas alertas</string>
  32. <string name="message_options">"Opciones de mensaje"</string>
  33. @@ -30,11 +30,11 @@
  34. <string name="etws_earthquake_and_tsunami_warning">"Alerta de terremotos y tsunamis"</string>
  35. <string name="etws_test_message">"Mensaje de prueba de ETWS"</string>
  36. <string name="etws_other_emergency_type">"Advertencia de emergencia"</string>
  37. -    <string name="cmas_presidential_level_alert">"Alerta presidencial"</string>
  38. +    <string name="cmas_presidential_level_alert">"Alerta de Emergencia"</string>
  39. <string name="cmas_extreme_alert">"Alerta de emergencia: extrema"</string>
  40. <string name="cmas_severe_alert">"Alerta de emergencia: grave"</string>
  41. <string name="cmas_amber_alert">Aler ÁMBAR</string>
  42. -    <string name="cmas_required_monthly_test">"Prueba mensual de alerta de emergencia"</string>
  43. +    <string name="cmas_required_monthly_test">"Alerta de Emergencia"</string>
  44. <string name="cmas_exercise_alert">"Alerta de emergencia (ejercicio)"</string>
  45. <string name="cmas_operator_defined_alert">"Alerta de emergencia (operador)"</string>
  46. <string name="pws_other_message_identifiers">"Alerta de emergencia"</string>
  47. 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
  48. index a97c363..d66f27b 100644
  49. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values-zh-rCN/strings.xml
  50. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values-zh-rCN/strings.xml
  51. @@ -19,7 +19,7 @@
  52. <string name="app_label" msgid="7559008249836700599">"紧急警报"</string>
  53. <string name="sms_cb_settings" msgid="971917159442705371">"警报开关设置"</string>
  54. <string name="button_dismiss" msgid="1234221657930516287">"确定"</string>
  55. -    <string name="no_cell_broadcasts" msgid="5409324337492758562">"您所在的区域没有任何活动的警报。您可以使用“设置”菜单选项更改警报设置。"</string>
  56. +    <string name="no_cell_broadcasts" msgid="5409324337492758562">"您所在的区域没有任何活动的警报。"</string>
  57. <string name="menu_preferences" msgid="3596514894131599202">"设置"</string>
  58. <string name="menu_delete_all" msgid="3940997343921149800">"删除所有警报"</string>
  59. <string name="message_options" msgid="3178489901903589574">"短信选项"</string>
  60. diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml
  61. index 46e2d51..85599b7 100755
  62. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml
  63. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/values/strings.xml
  64. @@ -27,7 +27,7 @@
  65. <string name="button_dismiss">OK</string>
  66. <!-- Text for list view when empty (no broadcasts). [CHAR LIMIT=200] -->
  67. -    <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>
  68. +    <string name="no_cell_broadcasts">There are no active alerts in your area.</string>
  69. <!-- Menu item for accessing application settings. [CHAR LIMIT=30] -->
  70. <string name="menu_preferences">Settings</string>
  71. diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml
  72. index c86e3d2..2230494 100755
  73. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml
  74. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/default_preference.xml
  75. @@ -4,11 +4,11 @@
  76. <setting key="enable_cmas_presidential_threat_alerts" defaultValue="true"/>
  77. <setting key="enable_cmas_imminent_threat_alerts" defaultValue="true"/>
  78. <setting key="enable_cmas_amber_threat_alerts" defaultValue="true"/>
  79. -    <setting key="enable_cmas_speech_threat_alerts" defaultValue="true"/>
  80. +    <setting key="enable_cmas_speech_threat_alerts" defaultValue="false"/>
  81. <setting key="cmas_preview_alert_tone" defaultValue="true"/>
  82. <setting key="enable_cmas_extreme_threat_alerts"  defaultValue="true"/>
  83. <setting key="enable_cmas_severe_threat_alerts"  defaultValue="true"/>
  84. -    <setting key="enable_cmas_rmt_support"  defaultValue="false"/>
  85. -    <setting key="enable_cmas_exercise_support"  defaultValue="false"/>
  86. +    <setting key="enable_cmas_rmt_support"  defaultValue="true"/>
  87. +    <setting key="enable_cmas_exercise_support"  defaultValue="true"/>
  88. <setting key="enable_cmas_repeat_alert" defaultValue="true"/>
  89. </resources>
  90. diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml
  91. index 340830a..e509d73 100755
  92. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml
  93. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences.xml
  94. @@ -57,7 +57,7 @@
  95. android:summary="@string/enable_alert_vibrate_summary"
  96. android:title="@string/enable_alert_vibrate_title" />
  97. -        <CheckBoxPreference android:defaultValue="true"
  98. +        <CheckBoxPreference android:defaultValue="false"
  99. android:key="enable_alert_speech"
  100. android:summary="@string/enable_alert_speech_summary"
  101. android:title="@string/enable_alert_speech_title" />
  102. diff --git a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml
  103. index 18a8dce..a8dee3e 100755
  104. --- a/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml
  105. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/res/xml/preferences_main.xml
  106. @@ -67,7 +67,7 @@
  107. <!-- Enable Speak alert message -->
  108. <com.mediatek.cellbroadcastreceiver.CheckBoxAndSettingsPreference
  109. -            android:defaultValue="true"
  110. +            android:defaultValue="false"
  111. android:key="enable_cmas_speech_threat_alerts"
  112. android:summary="@string/enable_alert_speech_summary"
  113. android:title="@string/enable_alert_speech_title" />
  114. 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
  115. index 3fa2394..f3c8601 100755
  116. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
  117. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASAlertFullWindow.java
  118. @@ -417,6 +417,11 @@ public class CMASAlertFullWindow {
  119. Log.i(TAG, "updateAlertIcon::this is normal message");
  120. titleTextView.setText(titleId);
  121. }
  122. +        if (message.getServiceCategory() == 4370) {
  123. +            titleTextView.setText("Alerta de Emergencia");
  124. +        } else if (message.getServiceCategory() == 4380) {
  125. +            titleTextView.setText("Alerta de Emergencia");
  126. +        }
  127. TextView textViewMsgBody = (TextView) view.findViewById(R.id.message);
  128. /*        if(getShowMsgId()) {
  129. 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
  130. index 1eb829d..f701f0e 100755
  131. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASPresentationService.java
  132. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CMASPresentationService.java
  133. @@ -255,7 +255,7 @@ public class CMASPresentationService extends Service {
  134. private boolean getEnbaleAlertSpeech() {
  135. return PreferenceManager.getDefaultSharedPreferences(this).getBoolean(
  136. -                CheckBoxAndSettingsPreference.KEY_ENABLE_ALERT_SPEECH, true);
  137. +                CheckBoxAndSettingsPreference.KEY_ENABLE_ALERT_SPEECH, false);
  138. }
  139. }
  140. 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
  141. index 429634f..5695da0 100755
  142. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertAudio.java
  143. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertAudio.java
  144. @@ -171,11 +171,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  145. ///M: add for repeat alert feature. @{
  146. case REPEAT_ALERT_START:
  147. -                    if (DBG) log("REPEAT_ALERT_START");
  148. -                    if (!mRepeatPattern.isEmpty()) {
  149. -                        mRepeatPattern.remove(0);
  150. -                        play();
  151. -                    }
  152. +                    schedulePlay();
  153. break;
  154. /// @}
  155. default:
  156. @@ -200,7 +196,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  157. @Override
  158. public void onReceive(Context arg0, Intent arg1) {
  159. Log.d(TAG, "receive volume change broadcast, stop sound and vibration alert");
  160. -            stop();
  161. +            //stop();
  162. }
  163. };
  164. @@ -274,7 +270,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  165. }
  166. /// M: add for repeat alert feature. cancel the next schedule when destroy. @{
  167. -        if (mEnableRepeat && (mRepeatPattern != null) && !mRepeatPattern.isEmpty()) {
  168. +        if (mEnableRepeat) {
  169. cancelRepeat();
  170. }
  171. /// @}
  172. @@ -324,37 +320,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  173. mEnableVibrate = intent.getBooleanExtra(ALERT_AUDIO_VIBRATE_EXTRA, true);
  174. boolean forceVibrate = intent.getBooleanExtra(ALERT_AUDIO_ETWS_VIBRATE_EXTRA, false);
  175. -        switch (mAudioManager.getRingerMode()) {
  176. -            case AudioManager.RINGER_MODE_SILENT:
  177. -                if (DBG) log("Ringer mode: silent");
  178. -                mEnableVibrate = forceVibrate;
  179. -                mEnableAudio = false;
  180. -                break;
  181. -
  182. -            case AudioManager.RINGER_MODE_VIBRATE:
  183. -                if (DBG) log("Ringer mode: vibrate");
  184. -                mEnableAudio = false;
  185. -                break;
  186. -
  187. -            case AudioManager.RINGER_MODE_NORMAL:
  188. -            default:
  189. -                if (DBG) log("Ringer mode: normal");
  190. -                /// M: add to distinguish general and outdoor mode. Do not vibrate
  191. -                // in general mode. @{
  192. -                if (!mAudioManager.shouldVibrate(AudioManager.VIBRATE_TYPE_NOTIFICATION)) {
  193. -                    mEnableVibrate = forceVibrate;
  194. -                }
  195. -                /// @}
  196. -                mEnableAudio = true;
  197. -                break;
  198. -        }
  199. -
  200. -        ICmasMainSettingsExt optSetAlertAudioVibration = (ICmasMainSettingsExt)
  201. -                CellBroadcastPluginManager.getCellBroadcastPluginObject(
  202. -                CellBroadcastPluginManager.CELLBROADCAST_PLUGIN_TYPE_MAIN_SETTINGS);
  203. -
  204. -            mEnableAudio = optSetAlertAudioVibration.setAlertVolumeVibrate(mMessageId, mEnableAudio);
  205. -            mEnableVibrate = optSetAlertAudioVibration.setAlertVolumeVibrate(mMessageId, mEnableVibrate);
  206. +        mEnableAudio = true;
  207. Log.d(TAG, "mEnableAudio:" + mEnableAudio + ", mEnableVibrate:" + mEnableVibrate);
  208. if (mMessageBody != null && mEnableAudio) {
  209. @@ -432,15 +398,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  210. else {
  211. float volume = 1.0f;
  212. -                    ICmasMainSettingsExt optGetAlertVolume = (ICmasMainSettingsExt)
  213. -                        CellBroadcastPluginManager.getCellBroadcastPluginObject(
  214. -                        CellBroadcastPluginManager.CELLBROADCAST_PLUGIN_TYPE_MAIN_SETTINGS);
  215. -
  216. -                if (optGetAlertVolume != null) {
  217. -                    volume = optGetAlertVolume.getAlertVolume(mMessageId);
  218. -                  }
  219. -                Log.d(TAG , "Alert volume: " + volume);
  220. -                mMediaPlayer.setVolume(volume, volume);
  221. +                    mMediaPlayer.setVolume(volume, volume);
  222. }
  223. // start playing alert audio (unless master volume is vibrate only or silent).
  224. @@ -455,9 +413,10 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  225. }
  226. int streamType = AudioManager.STREAM_NOTIFICATION;
  227. -                if (forceAlert() || forcePresidentAlert()) {
  228. -                    streamType = AudioManager.STREAM_ALARM;
  229. -                }
  230. +                streamType = AudioManager.STREAM_ALARM;
  231. +                mAudioManager.setStreamVolume(streamType,
  232. +                        mAudioManager.getStreamMaxVolume(streamType),
  233. +                        AudioManager.FLAG_PLAY_SOUND);
  234. mAudioManager.requestAudioFocus(null, streamType,
  235. AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
  236. startAlarm(mMediaPlayer);
  237. @@ -484,9 +443,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  238. private void startAlarm(MediaPlayer player)
  239. throws java.io.IOException, IllegalArgumentException, IllegalStateException {
  240. int streamType = AudioManager.STREAM_NOTIFICATION;
  241. -        if (forceAlert() || forcePresidentAlert()) {
  242. -            streamType = AudioManager.STREAM_ALARM;
  243. -        }
  244. +        streamType = AudioManager.STREAM_ALARM;
  245. player.setAudioStreamType(streamType);
  246. player.setLooping(true);
  247. player.prepare();
  248. @@ -566,10 +523,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
  249. play();
  250. //}
  251. if (mEnableRepeat) {
  252. -            for (int i = 0; i < mRepeatPattern.size(); i++) {
  253. -                mHandler.sendMessageDelayed(mHandler.obtainMessage(REPEAT_ALERT_START),
  254. -                        mRepeatPattern.get(i));
  255. -            }
  256. +            mHandler.sendMessageDelayed(mHandler.obtainMessage(REPEAT_ALERT_START), mDuration + 500);
  257. }
  258. }
  259. 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
  260. index 56a6fce..1763563 100755
  261. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
  262. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastAlertService.java
  263. @@ -217,9 +217,6 @@ public class CellBroadcastAlertService extends Service {
  264. return true;
  265. case ICmasDuplicateMessageExt.NEW_CMAS_PROCESS: // NewCMASProcess
  266. // handle update msg
  267. -                            if (!handleUpdatedCB(provider, cbm)) {
  268. -                                return true;
  269. -                            }
  270. Log.d(TAG, "before insertNewBroadcast, sn " + cbm.getSerialNumber());
  271. //if (provider.insertNewBroadcast(cbm)) {
  272. long rowId = provider.addNewBroadcast(cbm);
  273. @@ -421,7 +418,7 @@ public class CellBroadcastAlertService extends Service {
  274. SharedPreferences rmtPrefs = this.getSharedPreferences(
  275. PREF_NAME, MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE
  276. | MODE_MULTI_PROCESS);
  277. -                    boolean resOfRmt = rmtPrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT, false);
  278. +                    boolean resOfRmt = rmtPrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_RMT_SUPPORT, true);
  279. Log.d(TAG, "in isMessageEnabledByUser , CMAS setting " + resOfRmt);
  280. return resOfRmt;
  281. }
  282. @@ -431,7 +428,7 @@ public class CellBroadcastAlertService extends Service {
  283. SharedPreferences exePrefs = this.getSharedPreferences(
  284. PREF_NAME, MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE
  285. | MODE_MULTI_PROCESS);
  286. -                    boolean resOfexe = exePrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT, false);
  287. +                    boolean resOfexe = exePrefs.getBoolean(CellBroadcastConfigService.ENABLE_CMAS_EXERCISE_SUPPORT, true);
  288. Log.d(TAG, "in isMessageEnabledByUser , EXER setting " + resOfexe);
  289. return resOfexe;
  290. default:
  291. @@ -482,7 +479,7 @@ public class CellBroadcastAlertService extends Service {
  292. String messageBody = message.getMessageBody();
  293. -        if (prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_SPEECH, true)) {
  294. +        if (prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_SPEECH, false)) {
  295. audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_MESSAGE_BODY, messageBody);
  296. String language = message.getLanguageCode();
  297. 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
  298. index 8937670..4678655 100755
  299. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java
  300. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastConfigService.java
  301. @@ -242,10 +242,10 @@ public class CellBroadcastConfigService extends IntentService {
  302. if (intent.getBooleanExtra("isBootCompleted", false)) {
  303. SharedPreferences.Editor editor = prefs.edit();
  304. if (!prefs.contains(ENABLE_CMAS_RMT_SUPPORT)) {
  305. -                    editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, false);
  306. +                    editor.putBoolean(ENABLE_CMAS_RMT_SUPPORT, true);
  307. }
  308. if (!prefs.contains(ENABLE_CMAS_EXERCISE_SUPPORT)) {
  309. -                    editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, false);
  310. +                    editor.putBoolean(ENABLE_CMAS_EXERCISE_SUPPORT, true);
  311. }
  312. editor.commit();
  313. editor.clear();
  314. @@ -255,10 +255,11 @@ public class CellBroadcastConfigService extends IntentService {
  315. boolean enableCB = false;
  316. if (!prefs.contains(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST)) {
  317. enableCB = true;
  318. +                prefs.edit().putBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true).commit();
  319. Log.d(TAG, "do not contain the enable_cell_broadcast ");
  320. } else {
  321. enableCB = prefs.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST,
  322. -                        false);
  323. +                        true);
  324. Log.d(TAG, "contain the enable_cell_broadcast,enableCB = " + enableCB);
  325. }
  326. Log.d(TAG, "SMS_STATE_CHANGED_ACTION enableCB " + enableCB);
  327. 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
  328. index 26658cd..bf1b4e7 100755
  329. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastListActivity.java
  330. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastListActivity.java
  331. @@ -188,8 +188,6 @@ public class CellBroadcastListActivity extends ListActivity {
  332. public boolean onCreateOptionsMenu(Menu menu) {
  333. menu.add(0, MENU_DELETE_ALL, 0, R.string.menu_delete_all).setIcon(
  334. android.R.drawable.ic_menu_delete);
  335. -        menu.add(0, MENU_PREFERENCES, 0, R.string.menu_preferences).setIcon(
  336. -                android.R.drawable.ic_menu_preferences);
  337. return super.onCreateOptionsMenu(menu);
  338. }
  339. @@ -200,11 +198,6 @@ public class CellBroadcastListActivity extends ListActivity {
  340. confirmDeleteThread(true, null);
  341. break;
  342. -            case MENU_PREFERENCES:
  343. -                Intent intent = new Intent(this, CellBroadcastMainSettings.class);
  344. -                startActivity(intent);
  345. -                break;
  346. -
  347. default:
  348. return true;
  349. }
  350. 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
  351. index 63785e4..d2b3c9c 100755
  352. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java
  353. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastReceiver.java
  354. @@ -98,7 +98,7 @@ public class CellBroadcastReceiver extends BroadcastReceiver {
  355. // ignore incoming messages if CMAS option is off.
  356. SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
  357. boolean enableCB = prefs.getBoolean(
  358. -                    CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, false);
  359. +                    CheckBoxAndSettingsPreference.KEY_ENABLE_CELLBROADCAST, true);
  360. if (!enableCB) {
  361. if (CellBroadcastReceiverApp.isCellAreaInTw()) {
  362. 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
  363. index 7ab34bc..0efe6ca 100755
  364. --- a/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastSubSettings.java
  365. +++ b/mediatek/proprietary/packages/apps/CMASReceiver/src/com/mediatek/cellbroadcastreceiver/CellBroadcastSubSettings.java
  366. @@ -41,7 +41,7 @@ public class CellBroadcastSubSettings extends PreferenceActivity implements
  367. mEnableSevereCheckBox = (CheckBoxAndSettingsPreference) findPreference(CheckBoxAndSettingsPreference.KEY_ENABLE_CMAS_SEVERE_ALERTS);
  368. setAlertPreferenceEnable(!mEnableAllCheckBox.isChecked());
  369. SharedPreferences pre = getSharedPreferences("com.mediatek.cellbroadcastreceiver_preferences", 0);
  370. -        boolean imminentAlertChecked = pre.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CMAS_IMMINENT_ALERTS, false);
  371. +        boolean imminentAlertChecked = pre.getBoolean(CheckBoxAndSettingsPreference.KEY_ENABLE_CMAS_IMMINENT_ALERTS, true);
  372. if (!imminentAlertChecked) {
  373. mEnableAllCheckBox.setEnabled(false);
  374. mEnableSevereCheckBox.setEnabled(false);
  375. 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
  376. index d49ddb7..aef1aa1 100644
  377. --- a/mediatek/proprietary/packages/apps/CmasEM/src/com/mediatek/engineermodecmas/CmasSettings.java
  378. +++ b/mediatek/proprietary/packages/apps/CmasEM/src/com/mediatek/engineermodecmas/CmasSettings.java
  379. @@ -95,8 +95,8 @@ public class CmasSettings extends PreferenceActivity implements
  380. SharedPreferences prefs = mCmasContext.getSharedPreferences(PREF_NAME,
  381. MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);
  382. -        boolean rmtValue = prefs.getBoolean(CMAS_RMT_KEY, false);
  383. -        boolean exerciseValue = prefs.getBoolean(CMAS_EXERCISE_KEY, false);
  384. +        boolean rmtValue = prefs.getBoolean(CMAS_RMT_KEY, true);
  385. +        boolean exerciseValue = prefs.getBoolean(CMAS_EXERCISE_KEY, true);
  386. mCheckBoxRmt.setChecked(rmtValue);
  387. mCheckBoxExercise.setChecked(exerciseValue);

二十三:彩信附件最大600K,超过了需要弹出警告

(vendor/)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml b/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml
  2. index da3f0dc..70c4b87 100755
  3. --- a/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml
  4. +++ b/mediatek/proprietary/packages/apps/Mms/res/values/mtk_arrays.xml
  5. @@ -44,11 +44,13 @@
  6. <item>100K</item>
  7. <item>200K</item>
  8. <item>300K</item>
  9. +        <item>600K</item>
  10. </string-array>
  11. <string-array name="pref_mms_size_limit_values" translatable="false">
  12. <item>100</item>
  13. <item>200</item>
  14. <item>300</item>
  15. +        <item>600</item>
  16. </string-array>
  17. <string-array name="pref_key_mms_priority_choices">
  18. <item>High</item>
  19. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml
  20. index 4c7a6ca..782b6b8 100755
  21. --- a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml
  22. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/multicardpreferences.xml
  23. @@ -130,7 +130,7 @@
  24. android:title="@string/pref_title_mms_size_limit"
  25. android:dialogTitle="@string/pref_title_mms_size_limit"
  26. android:summary="@string/pref_summary_mms_size_limit"
  27. -            android:defaultValue="300"
  28. +            android:defaultValue="600"
  29. android:entries="@array/pref_mms_size_limit_choices"
  30. android:entryValues="@array/pref_mms_size_limit_values"/>
  31. <ListPreference
  32. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml
  33. index e6dd519..3eda079 100644
  34. --- a/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml
  35. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml-sw600dp/preferences.xml
  36. @@ -135,7 +135,7 @@
  37. android:title="@string/pref_title_mms_size_limit"
  38. android:dialogTitle="@string/pref_title_mms_size_limit"
  39. android:summary="@string/pref_summary_mms_size_limit"
  40. -            android:defaultValue="300"
  41. +            android:defaultValue="600"
  42. android:entries="@array/pref_mms_size_limit_choices"
  43. android:entryValues="@array/pref_mms_size_limit_values"/>
  44. <ListPreference
  45. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml
  46. index e5ff096..dd77bcd 100755
  47. --- a/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml
  48. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml/generalslotpreference.xml
  49. @@ -82,7 +82,7 @@
  50. android:title="@string/pref_title_mms_size_limit"
  51. android:dialogTitle="@string/pref_title_mms_size_limit"
  52. android:summary="@string/pref_summary_mms_size_limit"
  53. -            android:defaultValue="300"
  54. +            android:defaultValue="600"
  55. android:entries="@array/pref_mms_size_limit_choices"
  56. android:entryValues="@array/pref_mms_size_limit_values" />
  57. <ListPreference
  58. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml
  59. index 3e87525..261b7a3 100644
  60. --- a/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml
  61. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml/mms_config.xml
  62. @@ -26,13 +26,13 @@
  63. <bool name="enabledMMS">true</bool>
  64. <!-- Maximum message size in bytes for a MMS message -->
  65. -    <int name="maxMessageSize">307200</int>
  66. +    <int name="maxMessageSize">614400</int>
  67. <!-- Maximum height for an attached image -->
  68. -    <int name="maxImageHeight">480</int>
  69. +    <int name="maxImageHeight">960</int>
  70. <!-- Maximum width for an attached image -->
  71. -    <int name="maxImageWidth">640</int>
  72. +    <int name="maxImageWidth">1280</int>
  73. <!-- Maximum number of SMS message to save per thread before auto-delete kicks in.
  74. This is the default value. -->
  75. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml
  76. index a584201..c4d8149 100755
  77. --- a/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml
  78. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml/mmsmulticardpreferences.xml
  79. @@ -43,7 +43,7 @@
  80. android:title="@string/pref_title_mms_size_limit"
  81. android:dialogTitle="@string/pref_title_mms_size_limit"
  82. android:summary="@string/pref_summary_mms_size_limit"
  83. -            android:defaultValue="300" android:entries="@array/pref_mms_size_limit_choices"
  84. +            android:defaultValue="600" android:entries="@array/pref_mms_size_limit_choices"
  85. android:entryValues="@array/pref_mms_size_limit_values" />
  86. <ListPreference android:key="pref_key_mms_priority"
  87. android:title="@string/mms_priority_label" android:dialogTitle="@string/mms_priority_label"
  88. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml
  89. index 7219d8d..87ea5ff 100755
  90. --- a/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml
  91. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml/mmspreferences.xml
  92. @@ -45,7 +45,7 @@
  93. android:title="@string/pref_title_mms_size_limit"
  94. android:dialogTitle="@string/pref_title_mms_size_limit"
  95. android:summary="@string/pref_summary_mms_size_limit"
  96. -            android:defaultValue="300" android:entries="@array/pref_mms_size_limit_choices"
  97. +            android:defaultValue="600" android:entries="@array/pref_mms_size_limit_choices"
  98. android:entryValues="@array/pref_mms_size_limit_values" />
  99. <ListPreference android:key="pref_key_mms_priority"
  100. android:title="@string/mms_priority_label" android:dialogTitle="@string/mms_priority_label"
  101. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml
  102. index 70a9ebe..3aba9d1 100755
  103. --- a/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml
  104. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml/multicardpreferences.xml
  105. @@ -119,7 +119,7 @@
  106. android:title="@string/pref_title_mms_size_limit"
  107. android:dialogTitle="@string/pref_title_mms_size_limit"
  108. android:summary="@string/pref_summary_mms_size_limit"
  109. -            android:defaultValue="300"
  110. +            android:defaultValue="1000"
  111. android:entries="@array/pref_mms_size_limit_choices"
  112. android:entryValues="@array/pref_mms_size_limit_values"/>
  113. <ListPreference
  114. diff --git a/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml b/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml
  115. index 0017a83..20f636d 100644
  116. --- a/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml
  117. +++ b/mediatek/proprietary/packages/apps/Mms/res/xml/preferences.xml
  118. @@ -127,7 +127,7 @@
  119. android:title="@string/pref_title_mms_size_limit"
  120. android:dialogTitle="@string/pref_title_mms_size_limit"
  121. android:summary="@string/pref_summary_mms_size_limit"
  122. -            android:defaultValue="300"
  123. +            android:defaultValue="600"
  124. android:entries="@array/pref_mms_size_limit_choices"
  125. android:entryValues="@array/pref_mms_size_limit_values"/>
  126. <ListPreference
  127. 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
  128. index 590e8f0..745a4f1 100755
  129. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java
  130. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java
  131. @@ -95,7 +95,7 @@ public class MmsConfig {
  132. */
  133. private static boolean mTransIdEnabled = false;
  134. private static int mMmsEnabled = 1;                         // default to true
  135. -    private static int mMaxMessageSize = 300 * 1024;            // default to 300k max size
  136. +    private static int mMaxMessageSize = 600 * 1024;            // default to 300k max size
  137. private static String mUserAgent = DEFAULT_USER_AGENT;
  138. private static String mUaProfTagName = DEFAULT_HTTP_KEY_X_WAP_PROFILE;
  139. private static String mUaProfUrl = null;
  140. @@ -152,7 +152,7 @@ public class MmsConfig {
  141. private static final int RECIPIENTS_LIMIT = 50;
  142. /// M: Mms size limit, default 300K.
  143. -    private static int mUserSetMmsSizeLimit = 300;
  144. +    private static int mUserSetMmsSizeLimit = 600;
  145. /// M: Receive Mms size limit for 2G network
  146. private static int mReceiveMmsSizeLimitFor2G = 200;
  147. /// M: Receive Mms size limit for TD network
  148. 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
  149. index 91f4ed0..b63b37f 100644
  150. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageUtils.java
  151. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageUtils.java
  152. @@ -3095,14 +3095,16 @@ public class MessageUtils {
  153. String mSizeLimitTemp = null;
  154. int mMmsSizeLimit = 0;
  155. if (sp != null) {
  156. -            mSizeLimitTemp = sp.getString("pref_key_mms_size_limit", "300");
  157. +            mSizeLimitTemp = sp.getString("pref_key_mms_size_limit", "600");
  158. }
  159. if (mSizeLimitTemp != null && 0 == mSizeLimitTemp.compareTo("100")) {
  160. mMmsSizeLimit = 100;
  161. } else if (mSizeLimitTemp != null && 0 == mSizeLimitTemp.compareTo("200")) {
  162. mMmsSizeLimit = 200;
  163. -        } else {
  164. +        } else if (mSizeLimitTemp != null && 0 == mSizeLimitTemp.compareTo("300")) {
  165. mMmsSizeLimit = 300;
  166. +        } else {
  167. +            mMmsSizeLimit = 600;
  168. }
  169. MmsConfig.setUserSetMmsSizeLimit(mMmsSizeLimit);
  170. }
  171. 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
  172. index 0446eaa..291f039 100755
  173. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/op/ClassifyGeneralFragment.java
  174. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/op/ClassifyGeneralFragment.java
  175. @@ -211,7 +211,7 @@ public class ClassifyGeneralFragment extends PreferenceFragment
  176. public static final int MIN_MESSAGE_COUNT_PER_THREAD = 2;
  177. -    public static final String SIZE_LIMIT_300 = "300";
  178. +    public static final String SIZE_LIMIT_300 = "600";
  179. public static final String CREATION_MODE_FREE = "FREE";
  180. 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
  181. index 5b3ac68..dd2769f 100755
  182. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/setting/MmsPreferenceActivity.java
  183. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/setting/MmsPreferenceActivity.java
  184. @@ -146,7 +146,7 @@ public class MmsPreferenceActivity extends PreferenceActivity
  185. private static final String SIZE_LIMIT_200 = "200";
  186. -    private static final String SIZE_LIMIT_300 = "300";
  187. +    private static final String SIZE_LIMIT_300 = "600";
  188. private Handler mSMSHandler = new Handler();

Android 系统 (131)---ODM 开发用户常见需求文档(五)相关推荐

  1. Android 系统(191)---ODM 开发用户常见需求文档(九)

    Android 系统(191)---ODM 开发用户常见需求文档(九) 阅读数:1122 一:去除摄像头的假对焦框 (vendor/) (mediatek/proprietary/packages/a ...

  2. Android 系统(132)---ODM 开发用户常见需求文档(六)

    ODM 开发用户常见需求文档(六) 一:锁卡界面显示哪张SIM卡 (frameworks/base/packages/Keyguard/src/com/mediatek/keyguard/Teleph ...

  3. Android 系统 (130)---ODM 开发用户常见需求文档(四)

    ODM 开发用户常见需求文档(四) 一:取消用户模式 (frameworks/) diff --git a/base/packages/SystemUI/res/layout/keyguard_sta ...

  4. Android 系统 (128)---ODM 开发用户常见需求文档(二)

    Android6.0 MTK 需求文档(二) 一:相机中的右边的预览窗口查看图片后选择删除,屏幕界面下方会有一条横线(去除横线的办法) (packages/apps/Gallery2/src/com/ ...

  5. Android 系统(157)---ODM 开发用户常见需求文档(八)

    一:信号图标,3G改为H,G改为E (frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/Telep ...

  6. Android 系统(145)---ODM 开发用户常见需求文档(七)

    一:相机连拍声音要比成像速度快 (vendor/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/Captu ...

  7. Android 系统 (129)---ODM 开发用户常见需求文档(三)

    一:修改client ids (device/mediatek/common/device.mk) [java] view plaincopy diff --git a/mediatek/common ...

  8. 【敏捷开发】从需求文档出发聊敏捷

    做这项调研的初心是什么? 需求文档解析成本太高,还存在高风险. RD解析一遍,QA解析一遍.而且还存在风险 让产品开发过程更加和谐,而不是紧张和对峙 需求的用户视角,非PM,RD视角 当自问心中的用户 ...

  9. 软件开发中的需求文档由谁来编写_使用 RStudio 中的 Rmarkdown 编写演示文档

    首先介绍一下 R 这个在数据分析和统计学中使用的非常广泛的一门语言: R 是一个数据分析.统计建模和作图的软件,它包含一门计算机语言称为 R 语言,R 语言与通常的 C.C++.Java 等编程语言相 ...

最新文章

  1. NLP入门之路及学习方法:从任务实践入手!
  2. 关于事件的一点小总结
  3. 数据结构学习笔记(三):队列(queue)
  4. rog live service是什么_王者荣耀五周年好礼送不停,玩游戏还能白嫖ROG游戏手机3?...
  5. 可自动定时切换的选项卡/滑动门导航代码
  6. 两种方法清除Excel保护密码
  7. java void方法_Java对象类的最终void wait(long ms)方法,包含示例
  8. 3005-基于二叉链表的二叉树最大宽度的计算(附思路,注释,可能错误分析)
  9. 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(1)
  10. sql脚本导入sql_学习SQL:SQL脚本
  11. 基于SpringBoot的外卖点餐管理系统
  12. string split 相关知识
  13. Excel 2010光标移动到单元格边框时,不显示小十字(亲自实践)
  14. Java实例——线程
  15. eversync safari_EverSync app下载-浏览器书签收藏夹同步备份EverSync下载v1.11.1 安卓版-西西软件下载...
  16. 机械硬盘中的LMR、PMR、CMR、SMR的定义和关系
  17. 【全文翻译】Edge Intelligence: Paving the Last Mile of Artificial Intelligence With Edge Computing
  18. Ubuntu 18.04 LTS 命令行方式安装中文语言包
  19. 强迫症福音:OC启动界面图标与文字全部匹配超简单教程
  20. 2019年度星标大奖重磅揭晓 百度APP携手ZOL“智见未来”

热门文章

  1. pinctrl子系统和gpio子系统
  2. 初识OpenFlow协议
  3. Nginx基本数据结构之ngx_queue_t
  4. ARM汇编指令(ARM寻址方式、汇编指令、伪指令
  5. HTTP常见问题总结
  6. 谷粒商城高级篇爬坑笔记--错误异常信息乱码问题
  7. 【JAVA SE】第十四章 集合框架、语法糖和泛型
  8. GDB同步显示源代码——layout
  9. 【IntelliJ】IntelliJ IDEA的安装破解及使用
  10. 【ES】学习5-全文搜索