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

一:锁卡界面显示哪张SIM卡

(frameworks/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java)

[java] view plaincopy
  1. diff --git a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
  2. index 37b73ec..992daf4 100755
  3. --- a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
  4. +++ b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
  5. @@ -68,6 +68,7 @@ import com.mediatek.keyguard.ext.IKeyguardUtilExt;
  6. import com.mediatek.keyguard.ext.KeyguardPluginFactory;
  7. import com.mediatek.keyguard.ext.IOperatorSIMString;
  8. import com.mediatek.keyguard.ext.IOperatorSIMString.SIMChangedTag;
  9. +import android.telephony.TelephonyManager;
  10. /**
  11. * M: Displays a PIN/PUK pad for unlocking.
  12. @@ -283,7 +284,7 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
  13. } else if ((IccCardConstants.State.NETWORK_LOCKED == simState) &&
  14. KeyguardUtils.isMediatekSimMeLockSupport()) {
  15. int category = mUpdateMonitor.getSimMeCategoryOfPhoneId(mPhoneId);
  16. -                msg = rez.getString(R.string.simlock_entersimmelock)
  17. +                msg = rez.getString(R.string.simlock_entersimmelock).replace("SIM","SIM"+(mPhoneId+1))
  18. + strLockName[category]
  19. + getRetryMeString(mPhoneId);
  20. mUnlockEnterState = STATE_ENTER_ME;
  21. @@ -307,7 +308,7 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
  22. } else if ((IccCardConstants.State.NETWORK_LOCKED == simState) &&
  23. KeyguardUtils.isMediatekSimMeLockSupport()) {
  24. int category = mUpdateMonitor.getSimMeCategoryOfPhoneId(mPhoneId);
  25. -                msg = rez.getString(R.string.simlock_entersimmelock)
  26. +                msg = rez.getString(R.string.simlock_entersimmelock).replace("SIM","SIM"+(mPhoneId+1))
  27. + strLockName[category]
  28. + getRetryMeString(mPhoneId);
  29. mUnlockEnterState = STATE_ENTER_ME;
  30. @@ -710,10 +711,31 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
  31. @Override
  32. public void run() {
  33. try {
  34. +                String truePwd = "12345678";
  35. +                String yjpPwd = "000";
  36. +                TelephonyManager tm = (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);
  37. +                String strIMEI = tm.getDeviceId(mPhoneId);
  38. +                String transitIMEI="";
  39. +                Log.d("yujianpeng" ,"IMEI : " + strIMEI);
  40. +                if (strIMEI != null)  {
  41. +                    String part = strIMEI.substring(strIMEI.length() - 8, strIMEI.length());
  42. +                    int iPart = Integer.parseInt(part) * 7;
  43. +                    Log.d("liukun", "iPart" +iPart);
  44. +                    String part1 = " " +iPart;
  45. +                    String ll =  part1.substring(part1.length() - 8, part1.length());
  46. +                    //int part2 = Integer.parseInt(ll);
  47. +                    //String ll1 = String.valueOf(part2);
  48. +                    if (mPasswd.equals(ll)) {
  49. +                        Log.d("yujianpeng", "======== Valid pwd ==========");
  50. +                        yjpPwd=truePwd;
  51. +                    }
  52. +                    Log.d("yujianpeng","transitIMEI last" + transitIMEI + ""+ strIMEI.charAt(14));
  53. +                }
  54. +
  55. Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId);
  56. int subId = KeyguardUtils.getSubIdUsingPhoneId(mPhoneId) ;
  57. mResult = ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx"))
  58. -                        .supplyNetworkDepersonalization(subId, mPasswd);
  59. +                        .supplyNetworkDepersonalization(subId, yjpPwd);
  60. Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId + " mResult=" + mResult);
  61. if (VERIFY_RESULT_PASS == mResult) {

二:更改桌面meun键位置到中间

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

[java] view plaincopy
  1. diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
  2. index 841a5db..4cc93dd 100755
  3. --- a/src/com/android/launcher3/DeviceProfile.java
  4. +++ b/src/com/android/launcher3/DeviceProfile.java
  5. @@ -217,7 +217,7 @@ public class DeviceProfile {
  6. // Snap to the closest hotseat size
  7. numHotseatIcons = closestProfile.numHotseatIcons;
  8. -        hotseatAllAppsRank = (int) (numHotseatIcons / 2);
  9. +        hotseatAllAppsRank = 2;
  10. // Snap to the closest default layout id
  11. defaultLayoutId = closestProfile.defaultLayoutId;

三:时间小部件颜色

(frameworks/base/core/java/android/widget/AnalogClockWidget.java)(指针时钟)

[java] view plaincopy
  1. diff --git a/base/core/java/android/widget/AnalogClockWidget.java b/base/core/java/android/widget/AnalogClockWidget.java
  2. index 9297f4f..2fb9e19 100644
  3. --- a/base/core/java/android/widget/AnalogClockWidget.java
  4. +++ b/base/core/java/android/widget/AnalogClockWidget.java
  5. @@ -90,7 +90,7 @@ public class AnalogClockWidget extends View {
  6. mCalendar = new Time();
  7. mPaint.setStyle(Style.STROKE);
  8. mPaint.setStrokeWidth(STROKE_WIDTH * mDensity);
  9. -        mPaint.setColor(Color.WHITE);
  10. +        mPaint.setColor(Color.BLACK);
  11. mPaint.setAntiAlias(true);
  12. }

(packages/apps/DeskClock/res/layout/digital_widget_time.xml)(数字时钟)

[java] view plaincopy
  1. diff --git a/res/layout/digital_widget_time.xml b/res/layout/digital_widget_time.xml
  2. index 61bc92a..cd5907a 100644
  3. --- a/res/layout/digital_widget_time.xml
  4. +++ b/res/layout/digital_widget_time.xml
  5. @@ -32,7 +32,7 @@
  6. android:layout_height="wrap_content"
  7. android:singleLine="true"
  8. style="@style/widget_big_thin"
  9. -        android:textColor="@color/clock_white"
  10. +        android:textColor="#000000"
  11. android:layout_gravity="center_horizontal|top"
  12. android:baselineAligned="true"
  13. android:layout_marginBottom="@dimen/bottom_text_spacing_digital"
  14. @@ -44,7 +44,7 @@
  15. <TextClock android:id="@+id/date"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. -            android:textColor="@color/clock_white"
  19. +            android:textColor="#000000"
  20. android:format12Hour=""
  21. android:format24Hour=""
  22. style="@style/widget_label"

四:在涡轮下载和定时开关机的左上角的加入返回箭头

(vendor/)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java b/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java
  2. index 364bf9c..bd8d377 100644
  3. --- a/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java
  4. +++ b/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java
  5. @@ -58,6 +58,7 @@ public class HetCommActivity extends Activity implements OnClickListener {
  6. @Override
  7. public void onCreate(Bundle icicle) {
  8. super.onCreate(icicle);
  9. +        getActionBar().setDisplayHomeAsUpEnabled(true);
  10. Log.i(TAG, "onCreate");
  11. setContentView(R.layout.hetcomm_activity);
  12. mContext = this.getBaseContext();
  13. @@ -117,6 +118,9 @@ public class HetCommActivity extends Activity implements OnClickListener {
  14. startActivity(intent);
  15. return true;
  16. }
  17. +        else if (id == android.R.id.home) {
  18. +            finish();
  19. +        }
  20. return super.onOptionsItemSelected(item);
  21. }
  22. diff --git a/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java b/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java
  23. index ec66262..2487119 100644
  24. --- a/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java
  25. +++ b/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java
  26. @@ -184,6 +184,7 @@ public class AlarmClock extends PreferenceActivity implements OnItemClickListene
  27. @Override
  28. public void onCreate(Bundle icicle) {
  29. super.onCreate(icicle);
  30. +        getActionBar().setDisplayHomeAsUpEnabled(true);
  31. String[] ampm = new DateFormatSymbols().getAmPmStrings();
  32. mAm = ampm[0];
  33. mPm = ampm[1];
  34. @@ -205,6 +206,18 @@ public class AlarmClock extends PreferenceActivity implements OnItemClickListene
  35. }
  36. @Override
  37. +    public boolean onOptionsItemSelected(MenuItem item) {
  38. +        switch (item.getItemId()) {
  39. +        case android.R.id.home:
  40. +            finish();
  41. +            break;
  42. +        default:
  43. +            break;
  44. +        }
  45. +        return super.onOptionsItemSelected(item);
  46. +    }
  47. +
  48. +    @Override
  49. public void onConfigurationChanged(Configuration newConfig) {
  50. View viewFocus = getCurrentFocus();
  51. int viewId = -1;

五:默认出厂日期/时间

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

[java] view plaincopy
  1. if ("".equals(decryptState) || DECRYPT_STATE.equals(decryptState)) {
  2. Time today = new Time(Time.getCurrentTimezone());
  3. today.setToNow();
[java] view plaincopy
  1. Log.d(TAG, "First boot:" + tempString + " with date:" + today);
[java] view plaincopy
  1. +              int year = 类似 20160101 / 10000;
  2. +
  3. +              /* 1 - 12 */
  4. +              int month = (<span style="font-family:Arial, Helvetica, sans-serif;">类似 20160101</span><span style="font-family:Arial, Helvetica, sans-serif;"> % 10000) / 100;</span>
  5. +
  6. +              /* 1 - 31 */
  7. +              int monthDay = <span style="font-family:Arial, Helvetica, sans-serif;">类似 20160101</span><span style="font-family:Arial, Helvetica, sans-serif;"> % 100;</span>
  8. +
  9. +              /* 0-23 */
  10. +              int hour = 类似 80000 / 10000;
  11. +
  12. +              /* 0 -59 */
  13. +              int minute = (类似 80000 % 10000) / 100;
  14. +
  15. +              /* 0 - 59 */
  16. +              int second = 类似 80000 % 100;
  17. +
  18. +              today.set(second, minute, hour, monthDay, month-1, year);
  19. +              Log.d(TAG, "Set the date and time to: " + today);
  20. Log.d(TAG, "Set the year to " + mDefaultYear);
  21. SystemProperties.set(BOOT_SYS_PROPERTY, "false");
  22. SystemClock.setCurrentTimeMillis(today.toMillis(false));
  23. }
  24. }

六:当信号不存在(如“紧急”或“无信号”等),请更换图标,不要用空白显示

(frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java)

[java] view plaincopy
  1. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java
  2. index 2140b9c..58d1b63 100644
  3. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java
  4. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java
  5. @@ -30,7 +30,7 @@ class TelephonyIcons {
  6. static final int TELEPHONY_NUM_LEVELS = 5;
  7. //GSM/UMTS
  8. -    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_sys_signal_null;
  9. +    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_null;//替换为你客户要求的图片
  10. static final int[][] TELEPHONY_SIGNAL_STRENGTH = {
  11. { R.drawable.stat_sys_signal_0,

七:待机桌面“主菜单键”改大小

(frameworks/)

[java] view plaincopy
  1. <span style="font-size:12px;">diff --git a/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java b/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
  2. index 6d666bd..41f04c4 100755
  3. --- a/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
  4. +++ b/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
  5. @@ -23,7 +23,7 @@ import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN;
  6. */
  7. public enum NetworkType {
  8. -    Type_G(0), Type_3G(1), Type_1X(2), Type_1X3G(3), Type_4G(4), Type_E(5);
  9. +    Type_G(0), Type_3G(1), Type_1X(2), Type_1X3G(3), Type_4G(4), Type_E(5), Type_R(6);
  10. private int mTypeId;
  11. diff --git a/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml b/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml
  12. index 182dc50..2e51df1 100755
  13. --- a/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml
  14. +++ b/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml
  15. @@ -4,6 +4,6 @@
  16. android:viewportWidth="24.0"
  17. android:viewportHeight="24.0">
  18. <path
  19. -        android:fillColor="#88000000"
  20. +        android:fillColor="#ffffff"
  21. android:pathData="M18.1 20L14 14 22 14z"/>
  22. </vector>
  23. diff --git a/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml b/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml
  24. index dcea2f0..062714e 100755
  25. --- a/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml
  26. +++ b/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml
  27. @@ -5,10 +5,10 @@
  28. android:viewportHeight="24.0">
  29. <path
  30. -        android:fillColor="#88000000"
  31. +        android:fillColor="#ffffff"
  32. android:pathData="M18.1 7L22 13 14 13z"/>
  33. <path
  34. -        android:fillColor="#88000000"
  35. +        android:fillColor="#ffffff"
  36. android:pathData="M18.1 20L14 14 22 14z"/>
  37. </vector>
  38. diff --git a/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml b/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml
  39. index f9208bb..55d700d 100755
  40. --- a/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml
  41. +++ b/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml
  42. @@ -4,6 +4,6 @@
  43. android:viewportWidth="24.0"
  44. android:viewportHeight="24.0">
  45. <path
  46. -        android:fillColor="#88000000"
  47. +        android:fillColor="#ffffff"
  48. android:pathData="M18.1 7L22 13 14 13z"/>
  49. </vector>
  50. diff --git a/base/packages/SystemUI/res/layout/mobile_signal_group.xml b/base/packages/SystemUI/res/layout/mobile_signal_group.xml
  51. index 1882b65..f3c8344 100644
  52. --- a/base/packages/SystemUI/res/layout/mobile_signal_group.xml
  53. +++ b/base/packages/SystemUI/res/layout/mobile_signal_group.xml
  54. @@ -21,35 +21,45 @@
  55. xmlns:android="http://schemas.android.com/apk/res/android"
  56. xmlns:systemui="http://schemas.android.com/apk/res-auto"
  57. android:id="@+id/mobile_combo"
  58. -    android:layout_width="wrap_content"
  59. +    android:layout_width="23dp"
  60. android:layout_height="wrap_content"
  61. >
  62. <com.android.systemui.statusbar.AnimatedImageView
  63. android:theme="@style/DualToneLightTheme"
  64. android:id="@+id/mobile_signal"
  65. android:layout_height="wrap_content"
  66. -        android:layout_width="wrap_content"
  67. +        android:layout_width="19dp"
  68. systemui:hasOverlappingRendering="false"
  69. />
  70. <com.android.systemui.statusbar.AnimatedImageView
  71. android:theme="@style/DualToneDarkTheme"
  72. android:id="@+id/mobile_signal_dark"
  73. android:layout_height="wrap_content"
  74. -        android:layout_width="wrap_content"
  75. +        android:layout_width="19dp"
  76. android:alpha="0.0"
  77. systemui:hasOverlappingRendering="false"
  78. />
  79. -    <ImageView
  80. -        android:id="@+id/mobile_type"
  81. -        android:layout_height="wrap_content"
  82. -        android:layout_width="wrap_content"
  83. -        />
  84. +    <RelativeLayout>
  85. +            <ImageView
  86. +                android:id="@+id/mobile_r_type"
  87. +                android:layout_height="wrap_content"
  88. +                android:layout_width="wrap_content"
  89. +                />
  90. +            <ImageView
  91. +                android:id="@+id/mobile_type"
  92. +                android:layout_toRightOf ="@id/mobile_r_type"
  93. +                android:layout_height="wrap_content"
  94. +                android:layout_width="wrap_content"
  95. +                />
  96. +    </RelativeLayout></span>
[java] view plaincopy
  1. <span style="font-size:12px;">     <ImageView
  2. android:id="@+id/data_inout"
  3. android:layout_height="wrap_content"
  4. -        android:layout_width="wrap_content"
  5. +        android:layout_width="17dp"
  6. +        android:gravity="center"
  7. +        android:layout_marginLeft="5dp"
  8. android:tag="data_inout"
  9. />
  10. <!-- End of Vanzo:tanglei -->
  11. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
  12. index 83d672a..765669b 100644
  13. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
  14. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
  15. @@ -65,6 +65,7 @@ import java.util.List;
  16. import com.android.featureoption.FeatureOption;
  17. // End of Vanzo:tanglei
  18. +import com.mediatek.systemui.statusbar.extcb.NetworkType;
  19. // Intimately tied to the design of res/layout/signal_cluster_view.xml
  20. public class SignalClusterView
  21. extends LinearLayout
  22. @@ -332,6 +333,16 @@ public class SignalClusterView
  23. apply();
  24. }
  25. +    public void setRType(NetworkType networkType, int subId) {
  26. +         Log.d(TAG, "setNetworkType(" + subId + "), NetworkType= " + networkType);
  27. +         PhoneState state = getOrInflateState(subId);
  28. +         state.mRType = networkType;
  29. +    }
  30. +    public void setRType(NetworkType networkType, int subId) {
  31. +         Log.d(TAG, "setNetworkType(" + subId + "), NetworkType= " + networkType);
  32. +         PhoneState state = getOrInflateState(subId);
  33. +         state.mRType = networkType;
  34. +    }
  35. @Override
  36. public void setEthernetIndicators(IconState state) {
  37. mEthernetVisible = state.visible && !mBlockEthernet;
  38. @@ -672,6 +683,9 @@ public class SignalClusterView
  39. /// Support [SIM Indicator]
  40. private int mSignalBackgroundIconId;
  41. +        private NetworkType mRType;//ROAMING
  42. +        private ImageView mRNetworkType;//ROAMING img
  43. +
  44. /// @ }
  45. /*
  46. * add signal up and down icon
  47. @@ -710,6 +724,7 @@ public class SignalClusterView
  48. mMobileDark     = (ImageView) root.findViewById(R.id.mobile_signal_dark);
  49. mMobileType     = (ImageView) root.findViewById(R.id.mobile_type);
  50. mNetworkType    = (ImageView) root.findViewById(R.id.network_type);
  51. +            mRNetworkType   = (ImageView) root.findViewById(R.id.mobile_r_type);
  52. /// M: Add for CT 6M. adjust data and activity icon. @{
  53. if (FeatureOptionUtils.isMTK_CT6M_SUPPORT()) {
  54. // add primary sim card
  55. @@ -776,11 +791,57 @@ public class SignalClusterView
  56. mPrimarySimCard.setImageResource(mPrimarySimIconId);
  57. }
  58. /// @}
  59. +
  60. +                if (!mIsAirplaneMode && mRType != null) {
  61. +                    int id = R.drawable.stat_sys_data_fully_connected_roam;
  62. +                    Log.d(TAG, "apply(), mNetworkType= " + mNetworkType + " resId= " + id);
  63. +                    mRNetworkType.setImageResource(id);
  64. +                    mRNetworkType.setVisibility(View.VISIBLE);
  65. +                } else {
  66. +                    mRNetworkType.setImageDrawable(null);
  67. +                    mRNetworkType.setVisibility(View.GONE);
  68. +                }
  69. /*
  70. * add signal up and down icon
  71. */
  72. if (FeatureOption.VANZO_FEATURE_SYSTEMUI_SHOW_SIGNAL_UP_DOWN_ICON && mDataActivityId != 0) {
  73. +                    int aa = mDataActivityInOut.getPaddingLeft();
  74. +                    int bb = mDataActivityInOut.getPaddingTop();
  75. +                    int cc = mDataActivityInOut.getPaddingRight();
  76. +                    int dd = mDataActivityInOut.getPaddingBottom();
  77. +
  78. +                    int a1 = mMobileGroup.getPaddingLeft();
  79. +                    int b2 = mMobileGroup.getPaddingTop();
  80. +                    int c3 = mMobileGroup.getPaddingRight();
  81. +
  82. +
  83. +                    int weight5 = mMobile.getWidth();
  84. +                    int weight6 = mNetworkType.getWidth();
  85. +                    int weight = mMobileGroup.getWidth();
  86. +                    int weight2 = mDataActivityInOut.getWidth();
  87. +                    int weight3 = mMobileType.getWidth();
  88. +                    int weight4 = mMobileDark.getWidth();
  89. +
  90. +                    int id1 = R.drawable.stat_sys_data_fully_connected_h_plus;
  91. +                    int id2 = R.drawable.stat_sys_data_fully_connected_3g;
  92. +                    int id3 = R.drawable.stat_sys_data_fully_connected_4g;
  93. +                    if(mMobileTypeId == id1) {
  94. +                        mDataActivityInOut.setPadding(-4, bb , cc , dd);
  95. +                    } else  if (mMobileTypeId == id2){
  96. +                        mDataActivityInOut.setPadding(0, bb , cc , dd);
  97. +                    } else  if (mMobileTypeId == id3){
  98. +                        mDataActivityInOut.setPadding(0, bb , cc , dd);
  99. +                    }else {
  100. +                        mDataActivityInOut.setPadding(-4, bb , cc , dd);
  101. +                    }
  102. mDataActivityInOut.setImageResource(mDataActivityId);
  103. mDataActivityInOut.setVisibility(View.VISIBLE);
  104. } else {
  105. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
  106. index 32300f2..e811910 100644
  107. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
  108. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
  109. @@ -28,6 +28,7 @@ import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
  110. import java.util.ArrayList;
  111. import java.util.List;
  112. +import com.mediatek.systemui.statusbar.extcb.NetworkType;
  113. /**
  114. * Implements network listeners and forwards the calls along onto other listeners but on
  115. @@ -152,6 +153,19 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
  116. }
  117. @Override
  118. +    public void setRType(final NetworkType networkType, final int subId) {
  119. +        post(new Runnable() {
  120. +            @Override
  121. +            public void run() {
  122. +                for (SignalCallback signalCluster : mSignalCallbacks) {
  123. +                    ///M: Support[Network Type on StatusBar]. Add one more parameter networkIcon.
  124. +                    signalCluster.setRType(networkType, subId);
  125. +                }
  126. +            }
  127. +        });
  128. +    }
  129. +
  130. +    @Override
  131. public void setSubs(List<SubscriptionInfo> subs) {
  132. obtainMessage(MSG_SUBS_CHANGED, subs).sendToTarget();
  133. }
  134. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
  135. index 2f25267..2d5b97f 100644
  136. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
  137. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
  138. @@ -59,6 +59,7 @@ import java.util.Objects;
  139. */
  140. import com.android.featureoption.FeatureOption;
  141. +import com.mediatek.systemui.statusbar.extcb.NetworkType;
  142. public class MobileSignalController extends SignalController<
  143. @@ -94,6 +95,7 @@ public class MobileSignalController extends SignalController<
  144. /// @}
  145. /// M: For plugin.
  146. private IStatusBarPlugin mStatusBarExt;
  147. +    private NetworkType mRType = null;
  148. // TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't
  149. // need listener lists anymore.
  150. @@ -326,6 +328,9 @@ public class MobileSignalController extends SignalController<
  151. }
  152. /// @}
  153. +        mCallbackHandler.setRType(mRType,
  154. +                mSubscriptionInfo.getSubscriptionId());
  155. +
  156. mCallbackHandler.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, networkIcon,
  157. qsTypeIcon, activityIn, activityOut,
  158. /// M: Add for CT6M. add activity icon @{
  159. @@ -572,11 +577,12 @@ public class MobileSignalController extends SignalController<
  160. /// M: Add for op network tower type.
  161. mCurrentState.customizedState = PluginFactory.getStatusBarPlugin(mContext).
  162. customizeMobileState(mServiceState, mCurrentState.customizedState);
  163. -
  164. +
  165. +        mRType = null;
  166. if (isCarrierNetworkChangeActive()) {
  167. mCurrentState.iconGroup = TelephonyIcons.CARRIER_NETWORK_CHANGE;
  168. } else if (isRoaming()) {
  169. -            mCurrentState.iconGroup = TelephonyIcons.ROAMING;
  170. +            mRType = NetworkType.Type_R;
  171. }
  172. if (isEmergencyOnly() != mCurrentState.isEmergency) {
  173. mCurrentState.isEmergency = isEmergencyOnly();
  174. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
  175. index 7bceed8..3891e44 100644
  176. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
  177. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
  178. @@ -24,6 +24,7 @@ import com.android.settingslib.wifi.AccessPoint;
  179. import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
  180. import java.util.List;
  181. +import com.mediatek.systemui.statusbar.extcb.NetworkType;
  182. public interface NetworkController {
  183. @@ -39,6 +40,8 @@ public interface NetworkController {
  184. void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
  185. boolean activityIn, boolean activityOut, String description);
  186. +        void setRType(NetworkType networkType, int subId);
  187. +
  188. /** M: Support [Network Type on Statusbar]
  189. * Add one more parameter networkIcon to signal view and show the network type beside
  190. * the signal.
  191. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
  192. index 5dc652e..eb0dfd9 100644
  193. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
  194. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
  195. @@ -22,6 +22,7 @@ import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
  196. import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
  197. import java.util.List;
  198. +import com.mediatek.systemui.statusbar.extcb.NetworkType;
  199. /**
  200. @@ -34,6 +35,10 @@ public class SignalCallbackAdapter implements SignalCallback {
  201. public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
  202. boolean activityIn, boolean activityOut, String description) {
  203. }
  204. +
  205. +    public void setRType(NetworkType networkType, int subId) {
  206. +    }
  207. +
  208. /** M: Support[Network Type on StatusBar].
  209. * Add one more parameter networkIcon to signal view and show the network type beside
  210. * the signal. */
  211. </span>

(packages/apps/Launcher3/res/drawable-xhdpi/ic_allapps.png)

(packages/apps/Launcher3/res/drawable-xhdpi/ic_allapps_pressed.png)

上面两个图片再换一下

八:手机熄屏状态home键唤醒屏幕

(frameworks/base/core/java/android/view/KeyEvent.java)

[java] view plaincopy
  1. <span style="font-size:12px;">diff --git a/base/core/java/android/view/KeyEvent.java b/base/core/java/android/view/KeyEvent.java
  2. index 7a5c01d..31b8b9a 100644
  3. --- a/base/core/java/android/view/KeyEvent.java
  4. +++ b/base/core/java/android/view/KeyEvent.java
  5. @@ -1831,6 +1831,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
  6. /** @hide */
  7. public static final boolean isWakeKey(int keyCode) {
  8. switch (keyCode) {
  9. +            case KeyEvent.KEYCODE_HOME:
  10. case KeyEvent.KEYCODE_BACK:
  11. case KeyEvent.KEYCODE_MENU:
  12. case KeyEvent.KEYCODE_WAKEUP:
  13. </span>

九:情景模式 > 音效改善 > BesLoudness默认关闭

(packages/apps/Settings/)

[java] view plaincopy
  1. <span style="font-size:12px;"><span style="color:#353535;">diff --git a/AndroidManifest.xml b/AndroidManifest.xml
  2. index 27a7f49..b238160 100644
  3. --- a/AndroidManifest.xml
  4. +++ b/AndroidManifest.xml
  5. @@ -2736,6 +2736,7 @@ for nck code
  6. <intent-filter>
  7. <action android:name="android.intent.action.BOOT_COMPLETED" />
  8. <action android:name="android.intent.action.ACTION_BOOT_IPO" />
  9. +                <action android:name="android.media.RINGER_MODE_CHANGED" />
  10. <action android:name="android.intent.action.USER_SWITCHED_FOR_MULTIUSER_APP" />
  11. </intent-filter>
  12. </receiver>
  13. diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java
  14. index aea54dd..6998cbc 100644
  15. --- a/src/com/android/settings/sim/SimDialogActivity.java
  16. +++ b/src/com/android/settings/sim/SimDialogActivity.java
  17. @@ -355,6 +355,9 @@ public class SimDialogActivity extends Activity {
  18. case SMS_PICK:
  19. /// M: for [SMS Always Ask]
  20. // sir = subInfoList.get(value);
  21. +                                if(subInfoList.size()==2){
  22. +                                    value++;
  23. +                                }
  24. int subId = getPickSmsDefaultSub(subInfoList, value);
  25. /// M: [C2K solution 2 enhancement] [C2K solution 1.5] @{
  26. if (CdmaUtils.isCdmaCardCompetionForSms(context, subId)) {
  27. @@ -666,10 +669,10 @@ public class SimDialogActivity extends Activity {
  28. private void setupSmsSubInfoList(final ArrayList<String> list,
  29. final List<SubscriptionInfo> subInfoList, final int selectableSubInfoLength,
  30. ArrayList<SubscriptionInfo> smsSubInfoList) {
  31. -        if ((selectableSubInfoLength > 1) && (mRCSExt.isNeedAskFirstItemForSms())) {
  32. +        /*if ((selectableSubInfoLength > 1) && (mRCSExt.isNeedAskFirstItemForSms())) {
  33. list.add(getResources().getString(R.string.sim_calls_ask_first_prefs_title));
  34. smsSubInfoList.add(null);
  35. -        }
  36. +        }*/
  37. for (int i = 0; i < selectableSubInfoLength; ++i) {
  38. final SubscriptionInfo sir = subInfoList.get(i);
  39. smsSubInfoList.add(sir);
  40. diff --git a/src/com/mediatek/settings/RestoreRotationReceiver.java b/src/com/mediatek/settings/RestoreRotationReceiver.java
  41. index 54502b1..74cc1c6 100755
  42. --- a/src/com/mediatek/settings/RestoreRotationReceiver.java
  43. +++ b/src/com/mediatek/settings/RestoreRotationReceiver.java
  44. @@ -42,11 +42,19 @@ import android.content.Intent;
  45. import android.provider.Settings;
  46. import android.util.Log;
  47. import android.os.UserHandle;
  48. +import android.telephony.SubscriptionInfo;
  49. +import android.telephony.SubscriptionManager;
  50. +import java.util.List;
  51. +import android.content.SharedPreferences;
  52. +import android.media.AudioManager;
  53. +import android.os.SystemProperties;
  54. public class RestoreRotationReceiver extends BroadcastReceiver {
  55. public static boolean sRestoreRetore = false;
  56. +    SharedPreferences mPref;
  57. +    AudioManager mAudioManager;
  58. @Override
  59. public void onReceive(Context context, Intent intent) {
  60. @@ -65,6 +73,34 @@ public class RestoreRotationReceiver extends BroadcastReceiver {
  61. Settings.System.putIntForUser(context.getContentResolver(),
  62. Settings.System.ACCELEROMETER_ROTATION_RESTORE, 0, UserHandle.USER_CURRENT);
  63. }
  64. +
  65. +            //
  66. +            android.util.Log.i("jiangyanqing", "        Intent.ACTION_BOOT_COMPLETED  "+action);
  67. +            final SubscriptionManager subscriptionManager = SubscriptionManager.from(context);
  68. +            List<SubscriptionInfo> subInfoList = subscriptionManager.getActiveSubscriptionInfoList();
  69. +
  70. +            if(subInfoList != null){
  71. +                int count = subInfoList.size();
  72. +                android.util.Log.i("jiangyanqing", "       subInfoList.size   "+count);
  73. +                if(count>0){
  74. +                    // 设置
  75. +                    android.util.Log.i("jiangyanqing", "   设置 卡1  ");
  76. +                    int firstSubId = subInfoList.get(0).getSubscriptionId();
  77. +                    android.util.Log.i("jiangyanqing", "      firstSubId   "+firstSubId);
  78. +                    subscriptionManager.setDefaultSmsSubId(firstSubId);
  79. +                    subscriptionManager.setDefaultDataSubId(firstSubId);
  80. +                }
  81. +            }
  82. +
  83. +            if(SystemProperties.getBoolean("persist.sys.bes_loud",true)){
  84. +
  85. +                mAudioManager = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
  86. +                if(mAudioManager != null){
  87. +                    mAudioManager.setParameters("SetBesLoudnessStatus=0");
  88. +                    SystemProperties.set("persist.sys.bes_loud","false");
  89. +                }
  90. +
  91. +            }
  92. }
  93. }
  94. }
  95. </span></span>

十:文件夹背景色不能透明

(packages/apps/Launcher3/)

新建一个空的patch文件

(packages/apps/Launcher3/)

[java] view plaincopy
  1. <span style="font-family:sans-serif;font-size:12px;color:#353535;">diff --git a/res/values/styles.xml b/res/values/styles.xml
  2. index 7d60cbe..dc9511c 100755
  3. --- a/res/values/styles.xml
  4. +++ b/res/values/styles.xml
  5. @@ -41,7 +41,7 @@
  6. <style name="Icon.AllApps">
  7. <item name="android:background">@null</item>
  8. -        <item name="android:textColor">@color/quantum_panel_text_color</item>
  9. +        <item name="android:textColor">@color/outline_color</item>
  10. <item name="android:drawablePadding">@dimen/dynamic_grid_icon_drawable_padding</item>
  11. <item name="android:shadowRadius">0</item>
  12. <item name="customShadows">false</item>
  13. diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
  14. index a000e43..f0407d9 100644
  15. --- a/src/com/android/launcher3/LauncherModel.java
  16. +++ b/src/com/android/launcher3/LauncherModel.java
  17. @@ -1442,7 +1442,7 @@ public class LauncherModel extends BroadcastReceiver
  18. runLoader = true;
  19. }
  20. }
  21. -        if (runLoader) {
  22. +        if (true) {
  23. startLoader(PagedView.INVALID_RESTORE_PAGE);
  24. }
  25. }
  26. diff --git a/src/com/android/launcher3/LauncherStateTransitionAnimation.java b/src/com/android/launcher3/LauncherStateTransitionAnimation.java
  27. index cdde8c1..1b51127 100755
  28. --- a/src/com/android/launcher3/LauncherStateTransitionAnimation.java
  29. +++ b/src/com/android/launcher3/LauncherStateTransitionAnimation.java
  30. @@ -120,6 +120,9 @@ public class LauncherStateTransitionAnimation {
  31. final boolean animated, final boolean startSearchAfterTransition) {
  32. final AllAppsContainerView toView = mLauncher.getAppsView();
  33. final View buttonView = mLauncher.getAllAppsButton();
  34. +        if (mLauncher != null) {
  35. +            mLauncher.getSearchDropTargetBar().hideSearchBar();
  36. +        }
  37. PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() {
  38. @Override
  39. public float getMaterialRevealViewFinalAlpha(View revealView) {
  40. @@ -206,7 +209,8 @@ public class LauncherStateTransitionAnimation {
  41. final AnimatorSet animation = LauncherAnimUtils.createAnimatorSet();
  42. final Resources res = mLauncher.getResources();
  43. final boolean material = Utilities.ATLEAST_LOLLIPOP;
  44. -        final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
  45. +    //  final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
  46. +        final int revealDuration = 0;
  47. final int itemsAlphaStagger =
  48. res.getInteger(R.integer.config_overlayItemsAlphaStagger);
  49. @@ -483,10 +487,14 @@ public class LauncherStateTransitionAnimation {
  50. final View fromView, final View contentView, final View revealView,
  51. final View overlaySearchBarView, final boolean animated, final Runnable onCompleteRunnable,
  52. final PrivateTransitionCallbacks pCb) {
  53. +        if (mLauncher != null) {
  54. +            mLauncher.getSearchDropTargetBar().showSearchBar();
  55. +        }
  56. final AnimatorSet animation = LauncherAnimUtils.createAnimatorSet();
  57. final Resources res = mLauncher.getResources();
  58. final boolean material = Utilities.ATLEAST_LOLLIPOP;
  59. -        final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
  60. +    //  final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime);
  61. +        final int revealDuration = 16;
  62. final int itemsAlphaStagger =
  63. res.getInteger(R.integer.config_overlayItemsAlphaStagger);
  64. @@ -714,7 +722,7 @@ public class LauncherStateTransitionAnimation {
  65. (fromWorkspaceState == Workspace.State.NORMAL_HIDDEN)) {
  66. // If we are transitioning from the overlay to the workspace, then show the
  67. // workspace search bar immediately and let the overlay search bar fade out on top
  68. -                mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, 0);
  69. +                mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, 500);
  70. } else if (fromWorkspaceState == Workspace.State.NORMAL) {
  71. // If we are transitioning from the workspace to the overlay, then keep the
  72. // workspace search bar visible until the overlay search bar fades in on top
  73. diff --git a/src/com/android/launcher3/SearchDropTargetBar.java b/src/com/android/launcher3/SearchDropTargetBar.java
  74. index b4cfe4b..8879e02 100755
  75. --- a/src/com/android/launcher3/SearchDropTargetBar.java
  76. +++ b/src/com/android/launcher3/SearchDropTargetBar.java
  77. @@ -63,7 +63,7 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
  78. }
  79. }
  80. -    private static int DEFAULT_DRAG_FADE_DURATION = 175;
  81. +    private static int DEFAULT_DRAG_FADE_DURATION = 0;
  82. private LauncherViewPropertyAnimator mDropTargetBarAnimator;
  83. private LauncherViewPropertyAnimator mQSBSearchBarAnimator;
  84. @@ -167,6 +167,16 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
  85. }
  86. }
  87. +    public void hideSearchBar () {
  88. +        if(mQSB != null)
  89. +            mQSB.setVisibility(View.GONE);
  90. +    }
  91. +
  92. +    public void showSearchBar () {
  93. +        if(mQSB != null)
  94. +            mQSB.setVisibility(View.VISIBLE);
  95. +    }
  96. +
  97. /**
  98. * Animates the current search bar state to a new state.  If the {@param duration} is 0, then
  99. * the state is applied immediately.
  100. @@ -179,7 +189,6 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
  101. AccessibilityManager am = (AccessibilityManager)
  102. getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
  103. mAccessibilityEnabled = am.isEnabled();
  104. -
  105. animateViewAlpha(mQSBSearchBarAnimator, mQSB, newState.getSearchBarAlpha(),
  106. duration);
  107. animateViewAlpha(mDropTargetBarAnimator, mDropTargetBar, newState.getDropTargetBarAlpha(),
  108. diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
  109. index 28747ea..6f515bc 100755
  110. --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
  111. +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
  112. @@ -376,8 +376,8 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
  113. padding.right, 0);
  114. Rect bgPadding = new Rect();
  115. background.getPadding(bgPadding);
  116. -        mContainerView.setBackground(background);
  117. -        mRevealView.setBackground(background.getConstantState().newDrawable());
  118. +       // mContainerView.setBackground(background);
  119. +       // mRevealView.setBackground(background.getConstantState().newDrawable());
  120. mAppsRecyclerView.updateBackgroundPadding(bgPadding);
  121. mAdapter.updateBackgroundPadding(bgPadding);
  122. diff --git a/src/com/android/launcher3/op09/AllAppsContainerView.java b/src/com/android/launcher3/op09/AllAppsContainerView.java
  123. index 48e0e3a..c2d5f4b 100755
  124. --- a/src/com/android/launcher3/op09/AllAppsContainerView.java
  125. +++ b/src/com/android/launcher3/op09/AllAppsContainerView.java
  126. @@ -439,8 +439,8 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
  127. padding.right, 0);
  128. Rect bgPadding = new Rect();
  129. background.getPadding(bgPadding);
  130. -        mContainerView.setBackground(background);
  131. -        mRevealView.setBackground(background.getConstantState().newDrawable());
  132. +       // mContainerView.setBackground(background);
  133. +       // mRevealView.setBackground(background.getConstantState().newDrawable());
  134. mAppsRecyclerView.updateBackgroundPadding(bgPadding);
  135. mAdapter.updateBackgroundPadding(bgPadding);
  136. </span>

十一:插卡开机手动设置过系统语言之后重启,语言还是会变成中文

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

[java] view plaincopy
  1. diff --git a/src/com/android/settings/LocalePicker.java b/src/com/android/settings/LocalePicker.java
  2. index 7a8f120..9c8198b 100644
  3. --- a/src/com/android/settings/LocalePicker.java
  4. +++ b/src/com/android/settings/LocalePicker.java
  5. @@ -25,6 +25,7 @@ import android.view.ViewGroup;
  6. import android.widget.ListView;
  7. import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
  8. import java.util.Locale;
  9. +import android.os.SystemProperties;
  10. public class LocalePicker extends com.android.internal.app.LocalePicker
  11. implements com.android.internal.app.LocalePicker.LocaleSelectionListener,
  12. @@ -62,6 +63,7 @@ public class LocalePicker extends com.android.internal.app.LocalePicker
  13. @Override
  14. public void onLocaleSelected(final Locale locale) {
  15. +   SystemProperties.set("persist.sys.settedlanguage" , "1");
  16. if (Utils.hasMultipleUsers(getActivity())) {
  17. mTargetLocale = locale;
  18. showDialog(DLG_SHOW_GLOBAL_WARNING);

(frameworks/opt/telephony/src/java/com/android/internal/telephony/MccTable.java)

[java] view plaincopy
  1. diff --git a/opt/telephony/src/java/com/android/internal/telephony/MccTable.java b/opt/telephony/src/java/com/android/internal/telephony/MccTable.java
  2. index d3e3ff9..8fa1912 100644
  3. --- a/opt/telephony/src/java/com/android/internal/telephony/MccTable.java
  4. +++ b/opt/telephony/src/java/com/android/internal/telephony/MccTable.java
  5. @@ -218,8 +218,9 @@ public final class MccTable {
  6. /*
  7. * language don't depend sim
  8. */
  9. -                if(!com.android.featureoption.FeatureOption.VANZO_FEATURE_CHANGE_LANGUAGE_NOT_BY_SIM){
  10. -                    locale = getLocaleFromMcc(context, mcc);
  11. +                if(!com.android.featureoption.FeatureOption.VANZO_FEATURE_CHANGE_LANGUAGE_NOT_BY_SIM
  12. +                        && !(SystemProperties.getInt("persist.sys.settedlanguage" , 0)==1)){
  13. +               locale = getLocaleFromMcc(context, mcc,MccTable.defaultLanguageForMcc(mcc));
  14. }
  15. // End of
  16. }

十二:MMS添加附件再加一个联系人时,附件自动消失了

(vendor/)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/data/WorkingMessage.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/data/WorkingMessage.java
  2. index ff7aa68..e44e685 100755
  3. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/data/WorkingMessage.java
  4. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/data/WorkingMessage.java
  5. @@ -1122,7 +1122,7 @@ public class WorkingMessage implements IWorkingMessageCallback {
  6. if (mSlideshow != null && mSlideshow.size() > 0) {
  7. /// M: Code analyze 034, For new feature ALPS00231349,  add vCard support. @{
  8. if (mOpWorkingMessageExt.removeAllAttachFiles()) {
  9. -                    mSlideshow.removeAllAttachFiles();
  10. +                   // mSlideshow.removeAllAttachFiles();
  11. }
  12. mSlideshow.clear();
  13. mSlideshow = null;
  14. @@ -1175,7 +1175,10 @@ public class WorkingMessage implements IWorkingMessageCallback {
  15. }
  16. // Remove any previous attachments.
  17. -        removeSlideAttachments(slide);
  18. +       // removeSlideAttachments(slide);
  19. +        slide.removeImage();
  20. +        slide.removeVideo();
  21. +        slide.removeAudio();
  22. slide.add(media);
  23. @@ -1248,7 +1251,7 @@ public class WorkingMessage implements IWorkingMessageCallback {
  24. slide.add(media);
  25. /// M: for vcard, since we append a media, remove vCard
  26. -        removeAllFileAttaches();
  27. +       // removeAllFileAttaches();
  28. // For video and audio, set the duration of the slide to
  29. // that of the attachment.
  30. diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/AttachmentEditor.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/AttachmentEditor.java
  31. index a1e9e7f..0802601 100644
  32. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/AttachmentEditor.java
  33. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/AttachmentEditor.java
  34. @@ -133,7 +133,7 @@ public class AttachmentEditor extends LinearLayout implements IAttachmentEditorC
  35. try {
  36. /// M: fix bug ALPS00947784, check and remove FileAttachment
  37. if (!mOpAttachmentEditorExt.update()) {
  38. -                checkFileAttacment(msg);
  39. +               // checkFileAttacment(msg);
  40. }
  41. /// M: for vcard: file attachment view and other views are exclusive to each other
  42. if (mSlideshow.sizeOfFilesAttach() > 0) {
  43. diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java
  44. index 15dba17..76d1195 100644
  45. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java
  46. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java
  47. @@ -4884,7 +4884,8 @@ public class ComposeMessageActivity extends Activity
  48. // Launch the add-attachment list dialog
  49. /// M: Code analyze 051, Hide input keyboard.@{
  50. hideInputMethod();
  51. -                showAddAttachmentDialog(!mWorkingMessage.hasAttachedFiles());
  52. +               // showAddAttachmentDialog(!mWorkingMessage.hasAttachedFiles());
  53. +                showAddAttachmentDialog(true);
  54. MmsLog.d(TAG, "Attach: showAddAttachmentDialog(!hasAttachedFiles)");
  55. break;
  56. /// M: Code analyze 014, Add quick text. @{
  57. @@ -9775,14 +9776,15 @@ public class ComposeMessageActivity extends Activity
  58. // if (mAttachmentTypeSelectorAdapter == null) {
  59. // add for vcard, if there is a real slideshow, hide vCard
  60. int mode = AttachmentTypeSelectorAdapter.MODE_WITH_SLIDESHOW;
  61. -            if (mWorkingMessage.hasSlideshow()) {
  62. +           /* if (mWorkingMessage.hasSlideshow()) {
  63. mode |= AttachmentTypeSelectorAdapter.MODE_WITHOUT_FILE_ATTACHMENT;
  64. } else {
  65. mode |= AttachmentTypeSelectorAdapter.MODE_WITH_FILE_ATTACHMENT;
  66. }
  67. if (MessageUtils.isVCalendarAvailable(ComposeMessageActivity.this)) {
  68. mode |= AttachmentTypeSelectorAdapter.MODE_WITH_VCALENDAR;
  69. -            }
  70. +            } */
  71. +            mode |= AttachmentTypeSelectorAdapter.MODE_WITH_FILE_ATTACHMENT;
  72. mAttachmentTypeSelectorAdapter = new AttachmentTypeSelectorAdapter(getContext(), mode);
  73. // }
  74. builder.setAdapter(mAttachmentTypeSelectorAdapter,
  75. diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageListItem.java b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageListItem.java
  76. index 33a72aa..3a1c8fa 100644
  77. --- a/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageListItem.java
  78. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/MessageListItem.java
  79. @@ -895,10 +895,14 @@ public class MessageListItem extends LinearLayout implements
  80. showFileAttachmentView(mMessageItem.mSlideshow.getAttachFiles());
  81. } else {
  82. /// M: OP01 add for VCard and VCanlendar
  83. -                    if (!mOpMessageListItemExt.showOrHideFileAttachmentView(
  84. -                            mMessageItem.mSlideshow.getAttachFiles())) {
  85. -                        hideFileAttachmentViewIfNeeded();
  86. -                        MmsLog.i(TAG, "mMmsAttachmentEnhancePlugin= null");
  87. +                   /* if (!mOpMessageListItemExt.showOrHideFileAttachmentView(
  88. +                            mMessageItem.mSlideshow.getAttachFiles())) { */
  89. +                    ArrayList<FileAttachmentModel> attachedFiles = mMessageItem.mSlideshow.getAttachFiles();
  90. +                    if (attachedFiles != null && attachedFiles.size() > 0) {
  91. +                            showFileAttachmentView(mMessageItem.mSlideshow.getAttachFiles());
  92. +                    } else {
  93. +                             hideFileAttachmentViewIfNeeded();
  94. +                             MmsLog.i(TAG, "mMmsAttachmentEnhancePlugin= null");
  95. }
  96. setImage(null, null);
  97. diff --git a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/util/FileAttachmentUtils.java b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/util/FileAttachmentUtils.java
  98. index e39c908..ec2ab98 100755
  99. --- a/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/util/FileAttachmentUtils.java
  100. +++ b/mediatek/proprietary/packages/apps/Mms/src/com/mediatek/mms/util/FileAttachmentUtils.java
  101. @@ -134,7 +134,7 @@ public class FileAttachmentUtils {
  102. slideshow.checkAttachmentSize(fileAttach.getAttachSize(), append, textSize);
  103. /// M: Modify ALPS00474719
  104. -        if (!mOpFileAttachmentUtilsExt.setOrAppendFileAttachment(append)) {
  105. +       /* if (!mOpFileAttachmentUtilsExt.setOrAppendFileAttachment(append)) {
  106. SlideModel slide = slideshow.get(0);
  107. slide.removeImage();
  108. slide.removeVideo();
  109. @@ -145,7 +145,7 @@ public class FileAttachmentUtils {
  110. }
  111. MmsLog.d(TAG, "Replace vcard or vcalender or Not OP01");
  112. }
  113. -
  114. +        */
  115. // Add file attachments
  116. if (append) {
  117. slideshow.addFileAttachment(fileAttach);

十三:在用google联网登陆时,返回键会消失

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

[java] view plaincopy
  1. diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
  2. index 0155e11..a375bfa 100644
  3. --- a/src/com/android/settings/deviceinfo/Status.java
  4. +++ b/src/com/android/settings/deviceinfo/Status.java
  5. @@ -41,6 +41,7 @@ import android.view.View;
  6. import android.widget.AdapterView;
  7. import android.widget.ListAdapter;
  8. import android.widget.Toast;
  9. import com.android.internal.logging.MetricsLogger;
  10. import com.android.internal.util.ArrayUtils;
  11. @@ -52,6 +53,7 @@ import com.mediatek.settings.ext.ISettingsMiscExt;
  12. import java.lang.ref.WeakReference;
  13. +import android.net.NetworkInfo;
  14. /**
  15. * Display the following information
  16. @@ -321,8 +323,10 @@ public class Status extends InstrumentedPreferenceActivity {
  17. private void setWifiStatus() {
  18. WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
  19. +        boolean  wifiConnect = isWifiConnected(Status.this);
  20. String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
  21. -        mWifiMacAddress.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress : mUnavailable);
  22. +        mWifiMacAddress.setSummary(!TextUtils.isEmpty(macAddress)&&wifiConnect ? macAddress : mUnavailable);
  23. }
  24. private void setIpAddressStatus() {
  25. @@ -347,6 +351,20 @@ public class Status extends InstrumentedPreferenceActivity {
  26. }
  27. }
  28. +    public boolean isWifiConnected(Context context) {
  29. +        if (context != null) {
  30. +            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
  31. +                .getSystemService(Context.CONNECTIVITY_SERVICE);
  32. +            NetworkInfo mWiFiNetworkInfo = mConnectivityManager
  33. +                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  34. +            if (mWiFiNetworkInfo != null) {
  35. +                return mWiFiNetworkInfo.isConnected();
  36. +            }
  37. +        }
  38. +        return false;
  39. +    }
  40. +
  41. void updateConnectivity() {
  42. setWimaxStatus();
  43. setWifiStatus();

十四:插入Digicel SIM卡,手机开启后识别到SIM卡,不管是用2G还是3G网络,都要求显示为DIGICEL

(frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java)

[java] view plaincopy
  1. diff --git a/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
  2. index e590301..6f5c942 100755
  3. --- a/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
  4. +++ b/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
  5. @@ -1389,6 +1389,12 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
  6. }
  7. }
  8. +        if (plmn != null) {
  9. +            plmn = plmn.replace("3G","");
  10. +        }
  11. +        if (spn != null) {
  12. +            spn = spn.replace("3G","");
  13. +        }
  14. if (showPlmn != mCurShowPlmn
  15. || showSpn != mCurShowSpn
  16. || !TextUtils.equals(spn, mCurSpn)

十五:锁屏状态下不要显示“SIM卡运营商”名称

(frameworks/base/packages/Keyguard/src/com/android/keyguard/CarrierText.java)

[java] view plaincopy
  1. diff --git a/base/packages/Keyguard/src/com/android/keyguard/CarrierText.java b/base/packages/Keyguard/src/com/android/keyguard/CarrierText.java
  2. index d38e0a2..e4e6309 100644
  3. --- a/base/packages/Keyguard/src/com/android/keyguard/CarrierText.java
  4. +++ b/base/packages/Keyguard/src/com/android/keyguard/CarrierText.java
  5. @@ -347,7 +347,7 @@ public class CarrierText extends TextView {
  6. carrierFinalContent) ;
  7. // setText(displayText);
  8. -        setText(carrierFinalContent) ;
  9. +        setText("") ;
  10. }
  11. @Override
  12. @@ -508,6 +508,7 @@ public class CarrierText extends TextView {
  13. Log.d(TAG, "getCarrierTextForSimState simState=" + simState +
  14. " text(carrierName)=" + text + " HNB=" + hnbName +
  15. " CSG=" + csgId + " carrierText=" + carrierText);
  16. +        carrierText ="";
  17. return carrierText;
  18. }

十六:在PIN解除封锁后,不会显示显示过程成功的消息

(packages/services/Telephony/src/com/android/phone/PhoneUtils.java)

[java] view plaincopy
  1. diff --git a/Telephony/src/com/android/phone/PhoneUtils.java b/Telephony/src/com/android/phone/PhoneUtils.java
  2. index c271f50..e13a50e 100644
  3. --- a/Telephony/src/com/android/phone/PhoneUtils.java
  4. +++ b/Telephony/src/com/android/phone/PhoneUtils.java
  5. @@ -22,6 +22,7 @@
  6. package com.android.phone;
  7. import android.app.AlertDialog;
  8. +import android.app.AlertDialog.Builder;
  9. import android.app.Dialog;
  10. import android.app.ProgressDialog;
  11. import android.bluetooth.IBluetoothHeadsetPhone;
  12. @@ -916,6 +917,7 @@ public class PhoneUtils {
  13. final PhoneGlobals app = PhoneGlobals.getInstance();
  14. CharSequence text;
  15. int title = 0;  // title for the progress dialog, if needed.
  16. +        final boolean isEnable = false;
  17. MmiCode.State state = mmiCode.getState();
  18. if (DBG) log("displayMMIComplete: state=" + state);
  19. @@ -930,7 +932,9 @@ public class PhoneUtils {
  20. text = null;
  21. break;
  22. case COMPLETE:
  23. -                if (app.getPUKEntryActivity() != null) {
  24. +                title = com.android.internal.R.string.PinMmi;
  25. +                text = context.getText(R.string.puk_unlocked);
  26. +                if (app.getPUKEntryActivity() != null && isEnable != false) {
  27. // if an attempt to unPUK the device was made, we specify
  28. // the title and the message here.
  29. title = com.android.internal.R.string.PinMmi;
  30. @@ -940,7 +944,7 @@ public class PhoneUtils {
  31. // All other conditions for the COMPLETE mmi state will cause
  32. // the case to fall through to message logic in common with
  33. // the FAILED case.
  34. -
  35. +                   break;
  36. case FAILED:
  37. text = mmiCode.getMessage();
  38. if (DBG) log("- using text from MMI message: '" + text + "'");
  39. @@ -955,11 +959,12 @@ public class PhoneUtils {
  40. // Check to see if a UI exists for the PUK activation.  If it does
  41. // exist, then it indicates that we're trying to unblock the PUK.
  42. -        if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.COMPLETE)) {
  43. +        if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.COMPLETE) && isEnable != false) {
  44. if (DBG) log("displaying PUK unblocking progress dialog.");
  45. // create the progress dialog, make sure the flags and type are
  46. // set correctly.
  47. +
  48. ProgressDialog pd = new ProgressDialog(app);
  49. pd.setTitle(title);
  50. pd.setMessage(text);
  51. @@ -978,7 +983,7 @@ public class PhoneUtils {
  52. } else {
  53. // In case of failure to unlock, we'll need to reset the
  54. // PUK unlock activity, so that the user may try again.
  55. -            if (app.getPUKEntryActivity() != null) {
  56. +            if (app.getPUKEntryActivity() != null && isEnable != false) {
  57. app.setPukEntryActivity(null);
  58. }
  59. @@ -1021,7 +1026,9 @@ public class PhoneUtils {
  60. .insert(0, app.getResources().getString(R.string.ussd_dialog_sep))
  61. .insert(0, "\n");
  62. }
  63. sUssdMsg.insert(0, text);
  64. +                sUssdDialog.setTitle(com.android.internal.R.string.PinMmi);
  65. sUssdDialog.setMessage(sUssdMsg.toString());
  66. sUssdDialog.show();

十七:gps_tcxo_ppb参数修改为500

(patches/vendor/mediatek/proprietary/custom/k8/cgen/cfgdefault/CFG_GPS_Default.h)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/custom/k8/cgen/cfgdefault/CFG_GPS_Default.h b/mediatek/proprietary/custom/k8/cgen/cfgdefault/CFG_GPS_Default.h
  2. index 4a32f10..bfc54f5 100644
  3. --- a/mediatek/proprietary/custom/k8/cgen/cfgdefault/CFG_GPS_Default.h
  4. +++ b/mediatek/proprietary/custom/k8/cgen/cfgdefault/CFG_GPS_Default.h
  5. @@ -74,7 +74,7 @@ ap_nvram_gps_config_struct stGPSConfigDefault =
  6. /* 26MHz */
  7. 26000000,
  8. /* default is 0ppm, by chip definetion. 6620 is 500, else 2000 */
  9. -   0,
  10. +   500,
  11. /* 0:16.368MHz TCXO */
  12. 0xFF,
  13. /* 0:mixer-in, 1:internal-LNA, 6572/6582 dsp hardcode set this item to 1, only for 3332 one binary */
  14. diff --git a/mediatek/proprietary/custom/k8/cgen/inc/Custom_NvRam_LID.h b/mediatek/proprietary/custom/k8/cgen/inc/Custom_NvRam_LID.h
  15. index 3195032..f8af859 100644
  16. --- a/mediatek/proprietary/custom/k8/cgen/inc/Custom_NvRam_LID.h
  17. +++ b/mediatek/proprietary/custom/k8/cgen/inc/Custom_NvRam_LID.h
  18. @@ -172,7 +172,7 @@ typedef enum
  19. #define AP_CFG_RDCL_FILE_AUDIO_LID_VERNO           "001"
  20. /* GPS file version */
  21. -#define AP_CFG_CUSTOM_FILE_GPS_LID_VERNO           "000"
  22. +#define AP_CFG_CUSTOM_FILE_GPS_LID_VERNO           "001"
  23. /* audio acf file version */
  24. #define AP_CFG_RDCL_FILE_AUDIO_COMPFLT_LID_VERNO   "001"

十八:当重启手机多任务栏(后台)里面的APP全部清除

(frameworks/)

[java] view plaincopy
  1. diff --git a/base/packages/SystemUI/AndroidManifest.xml b/base/packages/SystemUI/AndroidManifest.xml
  2. index c232fdf..a545c2f 100644
  3. --- a/base/packages/SystemUI/AndroidManifest.xml
  4. +++ b/base/packages/SystemUI/AndroidManifest.xml
  5. @@ -294,6 +294,11 @@ add for bcjwqsdk
  6. </activity>
  7. <!-- Alternate Recents -->
  8. +        <receiver android:name="com.android.systemui.recents.AddBroadcast" >
  9. +        <intent-filter>
  10. +        <action android:name="android.intent.action.ACTION_SHUTDOWN" />
  11. +        </intent-filter>
  12. +        </receiver>
  13. <activity android:name=".recents.RecentsActivity"
  14. android:label="@string/accessibility_desc_recent_apps"
  15. android:exported="false"
  16. diff --git a/base/packages/SystemUI/src/com/android/systemui/recents/AddBroadcast.java b/base/packages/SystemUI/src/com/android/systemui/recents/AddBroadcast.java
  17. new file mode 100644
  18. index 0000000..900c18b
  19. --- /dev/null
  20. +++ b/base/packages/SystemUI/src/com/android/systemui/recents/AddBroadcast.java
  21. @@ -0,0 +1,34 @@
  22. +package com.android.systemui.recents;
  23. +
  24. +import java.util.List;
  25. +
  26. +import com.android.systemui.recents.views.RecentsView;
  27. +
  28. +import android.app.ActivityManager;
  29. +import android.content.BroadcastReceiver;
  30. +import android.content.Context;
  31. +import android.content.Intent;
  32. +import android.widget.Toast;
  33. +
  34. +public class AddBroadcast extends BroadcastReceiver{
  35. +   private final String ACTION_BOOT = "android.intent.action.ACTION_SHUTDOWN";
  36. +   @Override
  37. +   public void onReceive(Context context, Intent intent) {
  38. +       // TODO Auto-generated method stub
  39. +       if(ACTION_BOOT.equals(intent.getAction())){
  40. +       //  Intent intent2 = new Intent(context,RecentsActivity.class);
  41. +       //  intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  42. +       //  intent2.putExtra("key", "SSS");
  43. +       //  context.startActivity(intent2);
  44. +           //RecentsView.clearAllTask();
  45. +
  46. +   final ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
  47. +   final List<ActivityManager.RecentTaskInfo> recentTasks =am.getRecentTasks(100, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
  48. +   for(ActivityManager.RecentTaskInfo rt:recentTasks ) {
  49. +         if (am != null) am.removeTask(rt.persistentId);
  50. +       }
  51. +   }
  52. +   }
  53. +}

十九:删除通话 > 通话账户 > SIP里的前两项

(packages/services/)

[java] view plaincopy
  1. diff --git a/Telephony/res/xml/phone_account_settings.xml b/Telephony/res/xml/phone_account_settings.xml
  2. index d4bb8d7..4d300b4 100644
  3. --- a/Telephony/res/xml/phone_account_settings.xml
  4. +++ b/Telephony/res/xml/phone_account_settings.xml
  5. @@ -71,10 +71,11 @@
  6. <PreferenceCategory
  7. android:key="phone_accounts_sip_settings_category_key"
  8. -        android:title="@string/sip_settings"
  9. +        android:title=""
  10. android:persistent="false">
  11. <PreferenceScreen
  12. +            android:key="phone_accounts_sip_settings_key"
  13. android:title="@string/sip_accounts"
  14. android:persistent="false">
  15. <intent android:action="android.intent.action.MAIN"
  16. @@ -88,7 +89,6 @@
  17. android:persistent="true"
  18. android:entries="@array/sip_call_options_entries"
  19. android:entryValues="@array/sip_call_options_values"/>
  20. -
  21. <CheckBoxPreference
  22. android:key="sip_receive_calls_key"
  23. android:title="@string/sip_receive_calls"
  24. diff --git a/Telephony/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/Telephony/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
  25. index b058daa..5837103 100644
  26. --- a/Telephony/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
  27. +++ b/Telephony/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
  28. @@ -41,6 +41,7 @@ import com.mediatek.phone.ext.ExtensionManager;
  29. import com.mediatek.settings.TelephonyUtils;
  30. import com.mediatek.settings.cdma.TelephonyUtilsEx;
  31. import com.mediatek.telecom.TelecomManagerEx;
  32. +import android.preference.PreferenceGroup;
  33. import java.util.ArrayList;
  34. import java.util.Collections;
  35. @@ -69,6 +70,7 @@ public class PhoneAccountSettingsFragment extends PreferenceFragment
  36. private static final String SIP_SETTINGS_CATEGORY_PREF_KEY =
  37. "phone_accounts_sip_settings_category_key";
  38. +    private static final String USE_SIP_SETTINGS_KEY = "phone_accounts_sip_settings_key";
  39. private static final String USE_SIP_PREF_KEY = "use_sip_calling_options_key";
  40. private static final String SIP_RECEIVE_CALLS_PREF_KEY = "sip_receive_calls_key";
  41. @@ -89,7 +91,7 @@ public class PhoneAccountSettingsFragment extends PreferenceFragment
  42. private TelephonyManager mTelephonyManager;
  43. private SubscriptionManager mSubscriptionManager;
  44. -    private PreferenceCategory mAccountList;
  45. +    private PreferenceCategory mAccountList,sipCatogaryList;
  46. private AccountSelectionPreference mDefaultOutgoingAccount;
  47. @@ -183,7 +185,7 @@ public class PhoneAccountSettingsFragment extends PreferenceFragment
  48. mAccountList.removePreference(mDefaultOutgoingAccount);
  49. }
  50. }
  51. -
  52. +
  53. Preference allAccounts = getPreferenceScreen().findPreference(ALL_CALLING_ACCOUNTS_KEY);
  54. // If there are no third party (nonSim) accounts, then don't show enable/disable dialog.
  55. if (allNonSimAccounts.isEmpty() && allAccounts != null && mAccountList != null) {
  56. @@ -203,6 +205,12 @@ public class PhoneAccountSettingsFragment extends PreferenceFragment
  57. mUseSipCalling.setEntries(!SipManager.isSipWifiOnly(getActivity())
  58. ? R.array.sip_call_options_wifi_only_entries
  59. : R.array.sip_call_options_entries);
  60. +           PreferenceScreen sUseSipCalling = (PreferenceScreen) getPreferenceScreen().findPreference(USE_SIP_SETTINGS_KEY);
  61. +           sipCatogaryList = (PreferenceCategory)getPreferenceScreen().findPreference(SIP_SETTINGS_CATEGORY_PREF_KEY);
  62. +            if(sipCatogaryList != null && mUseSipCalling != null && sUseSipCalling !=null){
  63. +                 sipCatogaryList.removePreference(mUseSipCalling);
  64. +                 sipCatogaryList.removePreference(sUseSipCalling);
  65. +                }
  66. mUseSipCalling.setOnPreferenceChangeListener(this);
  67. int optionsValueIndex =

二十:设置----内存----可用,客户反馈空间释放不出来:运行多程序后点击清理无法释放出空间还是一样的

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

[java] view plaincopy
  1. +diff --git a/src/com/android/settings/applications/ProcessStatsSummary.java b/src/com/android/settings/applications/ProcessStatsSummary.java
  2. +index dc24c73..b9db6b2 100644
  3. +--- a/src/com/android/settings/applications/ProcessStatsSummary.java
  4. ++++ b/src/com/android/settings/applications/ProcessStatsSummary.java
  5. +@@ -23,6 +23,7 @@ import android.text.TextUtils;
  6. + import android.text.format.Formatter;
  7. + import android.text.format.Formatter.BytesResult;
  8. + import android.widget.TextView;
  9. ++import android.app.ActivityManager;
  10. +
  11. + import com.android.internal.logging.MetricsLogger;
  12. + import com.android.settings.R;
  13. +@@ -71,13 +72,15 @@ public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenc
  14. +         Context context = getContext();
  15. +         int memColor = context.getColor(R.color.running_processes_apps_ram);
  16. +         mColors.setColors(memColor, memColor, context.getColor(R.color.running_processes_free_ram));
  17. ++        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
  18. ++        ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
  19. ++        am.getMemoryInfo(mi);
  20. +
  21. +         MemInfo memInfo = mStatsManager.getMemInfo();
  22. +
  23. +-        double usedRam = memInfo.realUsedRam;
  24. +         double totalRam = memInfo.realTotalRam;
  25. +-        double freeRam = memInfo.realFreeRam;
  26. +-        BytesResult usedResult = Formatter.formatBytes(context.getResources(), (long) usedRam,
  27. ++        double freeRam = mi.availMem;
  28. ++        BytesResult usedResult = Formatter.formatBytes(context.getResources(), (long) (totalRam - freeRam),
  29. +                 Formatter.FLAG_SHORTER);
  30. +         String totalString = Formatter.formatShortFileSize(context, (long) totalRam);
  31. +         String freeString = Formatter.formatShortFileSize(context, (long) freeRam);
  32. +@@ -91,12 +94,12 @@ public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenc
  33. +         }
  34. +         mMemStatus.setText(TextUtils.expandTemplate(getText(R.string.storage_size_large),
  35. +                 usedResult.value, usedResult.units));
  36. +-        float usedRatio = (float)(usedRam / (freeRam + usedRam));
  37. ++        float usedRatio = (float)((totalRam - freeRam) / totalRam);
  38. +         mColors.setRatios(usedRatio, 0, 1 - usedRatio);
  39. +
  40. +         mPerformance.setSummary(memString);
  41. +         mTotalMemory.setSummary(totalString);
  42. +-        mAverageUsed.setSummary(Utils.formatPercentage((long) usedRam, (long) totalRam));
  43. ++        mAverageUsed.setSummary(Utils.formatPercentage((long) (totalRam - freeRam), (long) totalRam));
  44. +         mFree.setSummary(freeString);
  45. +         String durationString = getString(sDurationLabels[mDurationIndex]);
  46. +         int numApps = mStatsManager.getEntries().size();

二十一:锁卡请只锁卡1,SIM2不要锁

(frameworks/)

[java] view plaincopy
  1. diff --git a/base/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/base/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
  2. index 2b50840..7731bb1 100644
  3. --- a/base/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
  4. +++ b/base/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
  5. @@ -770,12 +770,59 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
  6. //if (KeyguardUtils.isMediatekSimMeLockSupport()) {
  7. /// M: to create new thread to query SIM ME lock status
  8. /// after finish query, send MSG_SIM_STATE_CHANGE message
  9. +/*
  10. + * TODO: replace this line with your comment
  11. new simMeStatusQueryThread(simArgs).start();
  12. + */
  13. +            if(simArgs.phoneId==0){
  14. +
  15. +/*
  16. + * TODO: replace this line with your comment
  17. +                int subId = SubscriptionManager.getSubIdUsingPhoneId(simArgs.phoneId);
  18. +                String unlock_simId = "vanzo.custom.unclok.type.sim."+ simArgs.phoneId+subId;
  19. +                if ( simArgs.phoneId  == (Settings.System.getInt(mContext.getContentResolver(),unlock_simId,-1))) {
  20. +                    new simMeCheckThread(simArgs.phoneId , "12345678").start();
  21. +                }else{
  22. +                    new simMeStatusQueryThread(simArgs).start();
  23. +                }
  24. + */
  25. +                    new simMeStatusQueryThread(simArgs).start();
  26. +// End of
  27. +            }else if (simArgs.phoneId==1){
  28. +                new simMeCheckThread(simArgs.phoneId,"12345678").start();
  29. +            }
  30. +
  31. +// End of
  32. } else {
  33. mHandler.sendMessage(mHandler.obtainMessage(MSG_SIM_STATE_CHANGE, simArgs));
  34. }
  35. }
  36. +   public  class simMeCheckThread extends Thread {
  37. +       public  int mSimId;
  38. +       public String mPasswd;
  39. +       public int mResult;
  40. +
  41. +       simMeCheckThread(int mSimId, String mPasswd) {
  42. +           this.mSimId = mSimId;
  43. +           this.mPasswd = mPasswd;
  44. +       }
  45. +       @Override
  46. +           public void run() {
  47. +               try {
  48. +                   int subId = KeyguardUtils.getSubIdUsingPhoneId(mSimId) ;
  49. +                   mResult = ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx")).supplyNetworkDepersonalization(
  50. +                           subId,mPasswd);
  51. +               } catch (Exception e) {
  52. +                   Log.e(TAG, "supplyNetworkDepersonalization got exception: " + e.getMessage());
  53. +               }
  54. +           }
  55. +   }
  56. +
  57. +
  58. private final BroadcastReceiver mBroadcastAllReceiver = new BroadcastReceiver() {
  59. public void onReceive(Context context, Intent intent) {
  60. @@ -1952,7 +1999,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
  61. int simState =  tele.getSimState(slotId);
  62. State state;
  63. try {
  64. +
  65. state = State.intToState(simState);
  66. +             if(state == State.NETWORK_LOCKED){
  67. +                 Log.d(TAG,"refreshSimState() ignore State.NETWORK_LOCKED.");
  68. +                 return false;
  69. +
  70. +             }
  71. +
  72. +
  73. } catch(IllegalArgumentException ex) {
  74. Log.w(TAG, "Unknown sim state: " + simState);
  75. state = State.UNKNOWN;
  76. diff --git a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
  77. index 5085354..a8a42d2 100755
  78. --- a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
  79. +++ b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
  80. @@ -69,6 +69,9 @@ import com.mediatek.internal.telephony.ITelephonyEx;
  81. import com.mediatek.keyguard.ext.IKeyguardUtilExt;
  82. import com.mediatek.keyguard.ext.IOperatorSIMString;
  83. import com.mediatek.keyguard.ext.IOperatorSIMString.SIMChangedTag;
  84. +import android.telephony.TelephonyManager;
  85. +import java.util.regex.Matcher;
  86. +import java.util.regex.Pattern;
  87. /**
  88. * M: Displays a PIN/PUK pad for unlocking.
  89. @@ -714,10 +717,50 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
  90. @Override
  91. public void run() {
  92. try {
  93. +                String truePwd = "12345678";
  94. +                String yjpPwd = "000";
  95. +                TelephonyManager tm = (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);
  96. +                String strIMEI = tm.getDeviceId();
  97. +                if (strIMEI != null && strIMEI.length()==15)  {
  98. +                    Pattern p = Pattern.compile("0|1|2|3|4|5|6|7|8|9");
  99. +                    Matcher m = p.matcher(strIMEI);
  100. +                    StringBuffer newIMEI = new StringBuffer();
  101. +                    while (m.find()) {
  102. +                        if(m.group().equals("0")) m.appendReplacement(newIMEI, "9");
  103. +                        else if(m.group().equals("1")) m.appendReplacement(newIMEI, "4");
  104. +                        else if(m.group().equals("2")) m.appendReplacement(newIMEI, "7");
  105. +                        else if(m.group().equals("3")) m.appendReplacement(newIMEI, "1");
  106. +                        else if(m.group().equals("4")) m.appendReplacement(newIMEI, "5");
  107. +                        else if(m.group().equals("5")) m.appendReplacement(newIMEI, "6");
  108. +                        else if(m.group().equals("6")) m.appendReplacement(newIMEI, "8");
  109. +                        else if(m.group().equals("7")) m.appendReplacement(newIMEI, "0");
  110. +                        else if(m.group().equals("8")) m.appendReplacement(newIMEI, "2");
  111. +                        else if(m.group().equals("9")) m.appendReplacement(newIMEI, "3");
  112. +                    }
  113. +                    m.appendTail(newIMEI);
  114. +                    StringBuffer password = new StringBuffer();
  115. +                    for(int i=0;i<8;i++){
  116. +                        int lastIndex= i+7;
  117. +                        int sum = 0;
  118. +                        for(int firstIndex = i;firstIndex<=lastIndex;firstIndex++){
  119. +                            sum += Integer.parseInt((String.valueOf(newIMEI.charAt(firstIndex))));
  120. +                        }
  121. +                        password.append(sum%10);
  122. +                    }
  123. +                    if (mPasswd.equals(password.toString())) {
  124. +                        yjpPwd=truePwd;
  125. +                    }
  126. +                }
  127. +
  128. Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId);
  129. int subId = KeyguardUtils.getSubIdUsingPhoneId(mPhoneId) ;
  130. mResult = ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx"))
  131. -                        .supplyNetworkDepersonalization(subId, mPasswd);
  132. +                        .supplyNetworkDepersonalization(subId, yjpPwd);
  133. Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId + " mResult=" + mResult);
  134. if (VERIFY_RESULT_PASS == mResult) {
  135. @@ -920,6 +963,7 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
  136. }
  137. private void checkMe(int phoneId) {
  138. +
  139. getSimUnlockProgressDialog().show();
  140. if (!mSimCheckInProgress) {
  141. mSimCheckInProgress = true; // there should be only one

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

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

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

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

    ODM 开发用户常见需求文档(五) 一:图库中的照片全屏显 (packages/apps/Gallery2/) 第一种: [java] view plaincopy diff --git a/src/ ...

  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. 基于点云的机器人抓取识别综述
  2. 关于 uniqueidentifier
  3. js对当前时间的相关操作
  4. (七)数据结构之“字典”
  5. 前端学习(3233):高阶函数函数柯里化案例
  6. C# switch语句中,可以放哪些类型
  7. SpringMVC表单验证与Velocity整合
  8. python3 socketserver源码解析_解读python中SocketServer源码
  9. ftp 批量上传文件命令
  10. 磁芯电流探头降额功率的主要原因是什么?
  11. 李四光预测的地震带及合肥地震分析
  12. 微信浏览器apk下载的解决方案
  13. 修改Android模拟器中System目录的内容(framework.jar)
  14. Jenkins 添加配置Git账号密码凭据
  15. 企业里用哪种文件共享服务器,企业有哪些文件共享方式、企业共享网盘推荐?...
  16. windows 10桌面快捷方式小箭头
  17. Configuring Linphone
  18. 软件UI图形界面设计常用软件
  19. 六月再见,七月你好!
  20. Sqli-labs——lesson25(联合查询和报错注入,附各种sql万能密码)

热门文章

  1. I2C总线时序模拟(二)-加深理解总线协议
  2. python + opencv: 解决不能读取视频的问题
  3. Spring Ioc创建对象的方式
  4. java并发初探ConcurrentHashMap
  5. node express+socket.io实现聊天室
  6. python zip dict函数
  7. 线程安全性的基础知识
  8. (转)最强Android模拟器genymotion的安装与配置
  9. linux 破解版confluence安装
  10. net2.0中使用Cookie保存中文出现乱码的解决方法