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


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

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

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


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

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

[java]  view plain  copy
  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.    
  7.          // Snap to the closest hotseat size  
  8.          numHotseatIcons = closestProfile.numHotseatIcons;  
  9. -        hotseatAllAppsRank = (int) (numHotseatIcons / 2);  
  10. +        hotseatAllAppsRank = 2;  
  11.    
  12.          // Snap to the closest default layout id  
  13.          defaultLayoutId = closestProfile.defaultLayoutId;  


三:时间小部件颜色

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

[java]  view plain  copy
  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.      }  
  13.    
packages/apps/DeskClock/res/layout/digital_widget_time.xml)(数字时钟)
[java]  view plain  copy
  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.          "@+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 plain  copy
  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.    
  21.          return super.onOptionsItemSelected(item);  
  22.      }  
  23. 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  
  24. index ec66262..2487119 100644  
  25. --- a/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java  
  26. +++ b/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java  
  27. @@ -184,6 +184,7 @@ public class AlarmClock extends PreferenceActivity implements OnItemClickListene  
  28.      @Override  
  29.      public void onCreate(Bundle icicle) {  
  30.          super.onCreate(icicle);  
  31. +        getActionBar().setDisplayHomeAsUpEnabled(true);  
  32.          String[] ampm = new DateFormatSymbols().getAmPmStrings();  
  33.          mAm = ampm[0];  
  34.          mPm = ampm[1];  
  35. @@ -205,6 +206,18 @@ public class AlarmClock extends PreferenceActivity implements OnItemClickListene  
  36.      }  
  37.    
  38.      @Override  
  39. +    public boolean onOptionsItemSelected(MenuItem item) {  
  40. +        switch (item.getItemId()) {  
  41. +        case android.R.id.home:  
  42. +            finish();  
  43. +            break;  
  44. +        default:  
  45. +            break;  
  46. +        }  
  47. +        return super.onOptionsItemSelected(item);  
  48. +    }  
  49. +  
  50. +    @Override  
  51.      public void onConfigurationChanged(Configuration newConfig) {  
  52.          View viewFocus = getCurrentFocus();  
  53.          int viewId = -1;  


五:默认出厂日期/时间

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

[java]  view plain  copy
  1. if ("".equals(decryptState) || DECRYPT_STATE.equals(decryptState)) {  
  2.                Time today = new Time(Time.getCurrentTimezone());  
  3.                today.setToNow();  
[java]  view plain  copy
  1. Log.d(TAG, "First boot:" + tempString + " with date:" + today);  
[java]  view plain  copy
  1. +              int year = 类似 20160101 / 10000;  
  2. +   
  3. +              /* 1 - 12 */  
  4. +              int month = ("font-family:Arial, Helvetica, sans-serif;">类似 20160101"font-family:Arial, Helvetica, sans-serif;"> % 10000) / 100;  
  5. +   
  6. +              /* 1 - 31 */  
  7. +              int monthDay = "font-family:Arial, Helvetica, sans-serif;">类似 20160101"font-family:Arial, Helvetica, sans-serif;"> % 100;  
  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 plain  copy
  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.    
  8.      //GSM/UMTS  
  9. -    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_sys_signal_null;  
  10. +    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_null;//替换为你客户要求的图片  
  11.    
  12.      static final int[][] TELEPHONY_SIGNAL_STRENGTH = {  
  13.          { R.drawable.stat_sys_signal_0,  


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

frameworks/

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


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

packages/apps/Settings/

[java]  view plain  copy
  1. "font-size:12px;">"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.                
  7.                 "android.intent.action.BOOT_COMPLETED" />  
  8.                 "android.intent.action.ACTION_BOOT_IPO" />  
  9. +                "android.media.RINGER_MODE_CHANGED" />  
  10.                 "android.intent.action.USER_SWITCHED_FOR_MULTIUSER_APP" />  
  11.                
  12.            
  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 list,  
  29.              final List subInfoList, final int selectableSubInfoLength,  
  30.              ArrayList 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.    
  55.    
  56.  public class RestoreRotationReceiver extends BroadcastReceiver {  
  57.    
  58.      public static boolean sRestoreRetore = false;  
  59. +    SharedPreferences mPref;  
  60. +    AudioManager mAudioManager;  
  61.    
  62.      @Override  
  63.      public void onReceive(Context context, Intent intent) {  
  64. @@ -65,6 +73,34 @@ public class RestoreRotationReceiver extends BroadcastReceiver {  
  65.                  Settings.System.putIntForUser(context.getContentResolver(),  
  66.                          Settings.System.ACCELEROMETER_ROTATION_RESTORE, 0, UserHandle.USER_CURRENT);  
  67.              }  
  68. +  
  69. +            //  
  70. +            android.util.Log.i("jiangyanqing""        Intent.ACTION_BOOT_COMPLETED  "+action);  
  71. +            final SubscriptionManager subscriptionManager = SubscriptionManager.from(context);  
  72. +            List subInfoList = subscriptionManager.getActiveSubscriptionInfoList();  
  73. +  
  74. +            if(subInfoList != null){  
  75. +                int count = subInfoList.size();  
  76. +                android.util.Log.i("jiangyanqing""       subInfoList.size   "+count);  
  77. +                if(count>0){  
  78. +                    // 设置   
  79. +                    android.util.Log.i("jiangyanqing""   设置 卡1  ");  
  80. +                    int firstSubId = subInfoList.get(0).getSubscriptionId();  
  81. +                    android.util.Log.i("jiangyanqing""      firstSubId   "+firstSubId);  
  82. +                    subscriptionManager.setDefaultSmsSubId(firstSubId);  
  83. +                    subscriptionManager.setDefaultDataSubId(firstSubId);  
  84. +                }  
  85. +            }  
  86. +  
  87. +            if(SystemProperties.getBoolean("persist.sys.bes_loud",true)){  
  88. +  
  89. +                mAudioManager = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);  
  90. +                if(mAudioManager != null){  
  91. +                    mAudioManager.setParameters("SetBesLoudnessStatus=0");  
  92. +                    SystemProperties.set("persist.sys.bes_loud","false");  
  93. +                }  
  94. +  
  95. +            }  
  96.          }  
  97.      }  
  98.  }  
  99.   



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

packages/apps/Launcher3/

新建一个空的patch文件

packages/apps/Launcher3/

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


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

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

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


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

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

[java]  view plain  copy
  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.    
  10.  import com.android.internal.logging.MetricsLogger;  
  11.  import com.android.internal.util.ArrayUtils;  
  12. @@ -52,6 +53,7 @@ import com.mediatek.settings.ext.ISettingsMiscExt;  
  13.    
  14.    
  15.  import java.lang.ref.WeakReference;  
  16. +import android.net.NetworkInfo;  
  17.    
  18.  /**  
  19.   * Display the following information  
  20. @@ -321,8 +323,10 @@ public class Status extends InstrumentedPreferenceActivity {  
  21.    
  22.      private void setWifiStatus() {  
  23.          WifiInfo wifiInfo = mWifiManager.getConnectionInfo();  
  24. +        boolean  wifiConnect = isWifiConnected(Status.this);  
  25.          String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();  
  26. -        mWifiMacAddress.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress : mUnavailable);  
  27. +        mWifiMacAddress.setSummary(!TextUtils.isEmpty(macAddress)&&wifiConnect ? macAddress : mUnavailable);  
  28.      }  
  29.    
  30.      private void setIpAddressStatus() {  
  31. @@ -347,6 +351,20 @@ public class Status extends InstrumentedPreferenceActivity {  
  32.          }  
  33.      }  
  34.    
  35. +    public boolean isWifiConnected(Context context) {   
  36. +        if (context != null) {   
  37. +            ConnectivityManager mConnectivityManager = (ConnectivityManager) context   
  38. +                .getSystemService(Context.CONNECTIVITY_SERVICE);   
  39. +            NetworkInfo mWiFiNetworkInfo = mConnectivityManager   
  40. +                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);   
  41. +            if (mWiFiNetworkInfo != null) {   
  42. +                return mWiFiNetworkInfo.isConnected();   
  43. +            }   
  44. +        }   
  45. +        return false;   
  46. +    }   
  47. +  
  48.      void updateConnectivity() {  
  49.          setWimaxStatus();  
  50.          setWifiStatus();  


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

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

[java]  view plain  copy
  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.    
  9. +        if (plmn != null) {  
  10. +            plmn = plmn.replace("3G","");  
  11. +        }  
  12. +        if (spn != null) {  
  13. +            spn = spn.replace("3G","");  
  14. +        }  
  15.          if (showPlmn != mCurShowPlmn  
  16.                  || showSpn != mCurShowSpn  
  17.                  || !TextUtils.equals(spn, mCurSpn)  


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

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

[java]  view plain  copy
  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.    
  8.          // setText(displayText);  
  9. -        setText(carrierFinalContent) ;  
  10. +        setText("") ;  
  11.      }  
  12.    
  13.      @Override  
  14. @@ -508,6 +508,7 @@ public class CarrierText extends TextView {  
  15.          Log.d(TAG, "getCarrierTextForSimState simState=" + simState +  
  16.              " text(carrierName)=" + text + " HNB=" + hnbName +  
  17.              " CSG=" + csgId + " carrierText=" + carrierText);  
  18. +        carrierText ="";  
  19.          return carrierText;  
  20.      }  
  21.    


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

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

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



十七:gps_tcxo_ppb参数修改为500

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

[java]  view plain  copy
  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.    
  21.  /* GPS file version */  
  22. -#define AP_CFG_CUSTOM_FILE_GPS_LID_VERNO           "000"  
  23. +#define AP_CFG_CUSTOM_FILE_GPS_LID_VERNO           "001"  
  24.    
  25.  /* audio acf file version */  
  26.  #define AP_CFG_RDCL_FILE_AUDIO_COMPFLT_LID_VERNO   "001"  


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

frameworks/

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


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

packages/services/

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


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

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

[java]  view plain  copy
  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, 01 - 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 plain  copy
  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.    
  37. +   public  class simMeCheckThread extends Thread {  
  38. +       public  int mSimId;  
  39. +       public String mPasswd;  
  40. +       public int mResult;  
  41. +  
  42. +       simMeCheckThread(int mSimId, String mPasswd) {  
  43. +           this.mSimId = mSimId;  
  44. +           this.mPasswd = mPasswd;  
  45. +       }  
  46. +       @Override  
  47. +           public void run() {  
  48. +               try {  
  49. +                   int subId = KeyguardUtils.getSubIdUsingPhoneId(mSimId) ;  
  50. +                   mResult = ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx")).supplyNetworkDepersonalization(  
  51. +                           subId,mPasswd);  
  52. +               } catch (Exception e) {  
  53. +                   Log.e(TAG, "supplyNetworkDepersonalization got exception: " + e.getMessage());  
  54. +               }  
  55. +           }  
  56. +   }  
  57. +  
  58. +  
  59.      private final BroadcastReceiver mBroadcastAllReceiver = new BroadcastReceiver() {  
  60.    
  61.          public void onReceive(Context context, Intent intent) {  
  62. @@ -1952,7 +1999,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {  
  63.          int simState =  tele.getSimState(slotId);  
  64.          State state;  
  65.          try {  
  66. +  
  67.              state = State.intToState(simState);  
  68. +             if(state == State.NETWORK_LOCKED){  
  69. +                 Log.d(TAG,"refreshSimState() ignore State.NETWORK_LOCKED.");  
  70. +                 return false;  
  71. +  
  72. +             }  
  73. +  
  74. +  
  75.          } catch(IllegalArgumentException ex) {  
  76.              Log.w(TAG, "Unknown sim state: " + simState);  
  77.              state = State.UNKNOWN;  
  78. diff --git a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java  
  79. index 5085354..a8a42d2 100755  
  80. --- a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java  
  81. +++ b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java  
  82. @@ -69,6 +69,9 @@ import com.mediatek.internal.telephony.ITelephonyEx;  
  83.  import com.mediatek.keyguard.ext.IKeyguardUtilExt;  
  84.  import com.mediatek.keyguard.ext.IOperatorSIMString;  
  85.  import com.mediatek.keyguard.ext.IOperatorSIMString.SIMChangedTag;  
  86. +import android.telephony.TelephonyManager;  
  87. +import java.util.regex.Matcher;  
  88. +import java.util.regex.Pattern;  
  89.    
  90.  /**  
  91.   * M: Displays a PIN/PUK pad for unlocking.  
  92. @@ -714,10 +717,50 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {  
  93.          @Override  
  94.          public void run() {  
  95.              try {  
  96. +                String truePwd = "12345678";  
  97. +                String yjpPwd = "000";  
  98. +                TelephonyManager tm = (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);  
  99. +                String strIMEI = tm.getDeviceId();  
  100. +                if (strIMEI != null && strIMEI.length()==15)  {  
  101. +                    Pattern p = Pattern.compile("0|1|2|3|4|5|6|7|8|9");  
  102. +                    Matcher m = p.matcher(strIMEI);  
  103. +                    StringBuffer newIMEI = new StringBuffer();  
  104. +                    while (m.find()) {  
  105. +                        if(m.group().equals("0")) m.appendReplacement(newIMEI, "9");  
  106. +                        else if(m.group().equals("1")) m.appendReplacement(newIMEI, "4");  
  107. +                        else if(m.group().equals("2")) m.appendReplacement(newIMEI, "7");  
  108. +                        else if(m.group().equals("3")) m.appendReplacement(newIMEI, "1");  
  109. +                        else if(m.group().equals("4")) m.appendReplacement(newIMEI, "5");  
  110. +                        else if(m.group().equals("5")) m.appendReplacement(newIMEI, "6");  
  111. +                        else if(m.group().equals("6")) m.appendReplacement(newIMEI, "8");  
  112. +                        else if(m.group().equals("7")) m.appendReplacement(newIMEI, "0");  
  113. +                        else if(m.group().equals("8")) m.appendReplacement(newIMEI, "2");  
  114. +                        else if(m.group().equals("9")) m.appendReplacement(newIMEI, "3");  
  115. +                    }  
  116. +                    m.appendTail(newIMEI);  
  117. +                    StringBuffer password = new StringBuffer();  
  118. +                    for(int i=0;i<8;i++){  
  119. +                        int lastIndex= i+7;  
  120. +                        int sum = 0;  
  121. +                        for(int firstIndex = i;firstIndex<=lastIndex;firstIndex++){  
  122. +                            sum += Integer.parseInt((String.valueOf(newIMEI.charAt(firstIndex))));  
  123. +                        }  
  124. +                        password.append(sum%10);  
  125. +                    }  
  126. +                    if (mPasswd.equals(password.toString())) {  
  127. +                        yjpPwd=truePwd;  
  128. +                    }  
  129. +                }  
  130. +  
  131.                  Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId);  
  132.                  int subId = KeyguardUtils.getSubIdUsingPhoneId(mPhoneId) ;  
  133.                  mResult = ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx"))  
  134. -                        .supplyNetworkDepersonalization(subId, mPasswd);  
  135. +                        .supplyNetworkDepersonalization(subId, yjpPwd);  
  136.                  Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId + " mResult=" + mResult);  
  137.    
  138.                  if (VERIFY_RESULT_PASS == mResult) {  
  139. @@ -920,6 +963,7 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {  
  140.      }  
  141.    
  142.      private void checkMe(int phoneId) {  
  143. +  
  144.          getSimUnlockProgressDialog().show();  
  145.          if (!mSimCheckInProgress) {  
  146.              mSimCheckInProgress = true// there should be only one  

更多相关文章

  1. android 手机利用重力感应摇晃 换歌曲 “摇晃”实现
  2. Android-REC制作[从入门到精通]
  3. android 7.0 手机调用手机相机、相册常见的两个崩溃:FileUriExpos
  4. Android获取手机通话记录的方法
  5. Android小机器人
  6. Android手机防止休眠
  7. Android(安卓)手机的版本号 和 API 号码 匹配表?
  8. Android(安卓)Launcher 动态icon【时钟】【日历】
  9. Android怎么判断手机有没有联网

随机推荐

  1. OPhone/Android的学习(3)—再熟悉几个常
  2. Android(安卓)应用界面显示流程
  3. 四极管:Android开机logo制作
  4. 可靠的功能测试--Espresso和Dagger2
  5. Android上在两个Activity之间传递Bitmap
  6. Android进程说明
  7. android The project target (Android(安
  8. Android之MessageQueue、Looper、Handler
  9. Android(安卓)WebView中javascript和java
  10. Android之父深入解析Android