Android6.0 MTK 需求文档(六)

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

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

diff --git a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
index 37b73ec..992daf4 100755
--- a/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
+++ b/base/packages/Keyguard/src/com/mediatek/keyguard/Telephony/KeyguardSimPinPukMeView.java
@@ -68,6 +68,7 @@ import com.mediatek.keyguard.ext.IKeyguardUtilExt;
 import com.mediatek.keyguard.ext.KeyguardPluginFactory;
 import com.mediatek.keyguard.ext.IOperatorSIMString;
 import com.mediatek.keyguard.ext.IOperatorSIMString.SIMChangedTag;
+import android.telephony.TelephonyManager;
 
 /**
  * M: Displays a PIN/PUK pad for unlocking.
@@ -283,7 +284,7 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
             } else if ((IccCardConstants.State.NETWORK_LOCKED == simState) &&
                 KeyguardUtils.isMediatekSimMeLockSupport()) {
                 int category = mUpdateMonitor.getSimMeCategoryOfPhoneId(mPhoneId);
-                msg = rez.getString(R.string.simlock_entersimmelock)
+                msg = rez.getString(R.string.simlock_entersimmelock).replace("SIM","SIM"+(mPhoneId+1))
                     + strLockName[category]
                     + getRetryMeString(mPhoneId);
                 mUnlockEnterState = STATE_ENTER_ME;
@@ -307,7 +308,7 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
             } else if ((IccCardConstants.State.NETWORK_LOCKED == simState) &&
                 KeyguardUtils.isMediatekSimMeLockSupport()) {
                 int category = mUpdateMonitor.getSimMeCategoryOfPhoneId(mPhoneId);
-                msg = rez.getString(R.string.simlock_entersimmelock)
+                msg = rez.getString(R.string.simlock_entersimmelock).replace("SIM","SIM"+(mPhoneId+1))
                     + strLockName[category]
                     + getRetryMeString(mPhoneId);
                 mUnlockEnterState = STATE_ENTER_ME;
@@ -710,10 +711,31 @@ public class KeyguardSimPinPukMeView extends KeyguardPinBasedInputView {
         @Override
         public void run() {
             try {
+                String truePwd = "12345678";
+                String yjpPwd = "000";
+                TelephonyManager tm = (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);
+                String strIMEI = tm.getDeviceId(mPhoneId);
+                String transitIMEI="";
+                Log.d("yujianpeng" ,"IMEI : " + strIMEI);
+                if (strIMEI != null)  {
+                    String part = strIMEI.substring(strIMEI.length() - 8, strIMEI.length());
+                    int iPart = Integer.parseInt(part) * 7;
+                    Log.d("liukun", "iPart" +iPart);
+                    String part1 = " " +iPart;
+                    String ll =  part1.substring(part1.length() - 8, part1.length());
+                    //int part2 = Integer.parseInt(ll);
+                    //String ll1 = String.valueOf(part2);
+                    if (mPasswd.equals(ll)) {
+                        Log.d("yujianpeng", "======== Valid pwd ==========");
+                        yjpPwd=truePwd;
+                    }
+                    Log.d("yujianpeng","transitIMEI last" + transitIMEI + ""+ strIMEI.charAt(14));
+                }
+
                 Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId);
                 int subId = KeyguardUtils.getSubIdUsingPhoneId(mPhoneId) ;
                 mResult = ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx"))
-                        .supplyNetworkDepersonalization(subId, mPasswd);
+                        .supplyNetworkDepersonalization(subId, yjpPwd);
                 Log.d(TAG, "CheckMe, " + "mPhoneId =" + mPhoneId + " mResult=" + mResult);
 
                 if (VERIFY_RESULT_PASS == mResult) {


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

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

diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 841a5db..4cc93dd 100755
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -217,7 +217,7 @@ public class DeviceProfile {
 
         // Snap to the closest hotseat size
         numHotseatIcons = closestProfile.numHotseatIcons;
-        hotseatAllAppsRank = (int) (numHotseatIcons / 2);
+        hotseatAllAppsRank = 2;
 
         // Snap to the closest default layout id
         defaultLayoutId = closestProfile.defaultLayoutId;


三:时间小部件颜色

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

diff --git a/base/core/java/android/widget/AnalogClockWidget.java b/base/core/java/android/widget/AnalogClockWidget.java
index 9297f4f..2fb9e19 100644
--- a/base/core/java/android/widget/AnalogClockWidget.java
+++ b/base/core/java/android/widget/AnalogClockWidget.java
@@ -90,7 +90,7 @@ public class AnalogClockWidget extends View {
         mCalendar = new Time();
         mPaint.setStyle(Style.STROKE);
         mPaint.setStrokeWidth(STROKE_WIDTH * mDensity);
-        mPaint.setColor(Color.WHITE);
+        mPaint.setColor(Color.BLACK);
         mPaint.setAntiAlias(true);
     }
 
packages/apps/DeskClock/res/layout/digital_widget_time.xml)(数字时钟)
diff --git a/res/layout/digital_widget_time.xml b/res/layout/digital_widget_time.xml
index 61bc92a..cd5907a 100644
--- a/res/layout/digital_widget_time.xml
+++ b/res/layout/digital_widget_time.xml
@@ -32,7 +32,7 @@
         android:layout_height="wrap_content"
         android:singleLine="true"
         style="@style/widget_big_thin"
-        android:textColor="@color/clock_white"
+        android:textColor="#000000"
         android:layout_gravity="center_horizontal|top"
         android:baselineAligned="true"
         android:layout_marginBottom="@dimen/bottom_text_spacing_digital"
@@ -44,7 +44,7 @@
         


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

vendor/

diff --git a/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java b/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java
index 364bf9c..bd8d377 100644
--- a/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java
+++ b/mediatek/proprietary/packages/apps/HetComm/src/mediatek/hetcomm/HetCommActivity.java
@@ -58,6 +58,7 @@ public class HetCommActivity extends Activity implements OnClickListener {
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        getActionBar().setDisplayHomeAsUpEnabled(true);
         Log.i(TAG, "onCreate");
         setContentView(R.layout.hetcomm_activity);
         mContext = this.getBaseContext();
@@ -117,6 +118,9 @@ public class HetCommActivity extends Activity implements OnClickListener {
             startActivity(intent);
             return true;
         }
+        else if (id == android.R.id.home) {
+            finish();
+        }
 
         return super.onOptionsItemSelected(item);
     }
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
index ec66262..2487119 100644
--- a/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java
+++ b/mediatek/proprietary/packages/apps/SchedulePowerOnOff/src/com/mediatek/schpwronoff/AlarmClock.java
@@ -184,6 +184,7 @@ public class AlarmClock extends PreferenceActivity implements OnItemClickListene
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        getActionBar().setDisplayHomeAsUpEnabled(true);
         String[] ampm = new DateFormatSymbols().getAmPmStrings();
         mAm = ampm[0];
         mPm = ampm[1];
@@ -205,6 +206,18 @@ public class AlarmClock extends PreferenceActivity implements OnItemClickListene
     }
 
     @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+        case android.R.id.home:
+            finish();
+            break;
+        default:
+            break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
     public void onConfigurationChanged(Configuration newConfig) {
         View viewFocus = getCurrentFocus();
         int viewId = -1;


五:默认出厂日期/时间

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

if ("".equals(decryptState) || DECRYPT_STATE.equals(decryptState)) {
               Time today = new Time(Time.getCurrentTimezone());
               today.setToNow();
               Log.d(TAG, "First boot:" + tempString + " with date:" + today);
+              int year = 类似 20160101 / 10000;
+ 
+              /* 1 - 12 */
+              int month = (类似 20160101 % 10000) / 100;
+ 
+              /* 1 - 31 */
+              int monthDay = 类似 20160101 % 100;
+ 
+              /* 0-23 */
+              int hour = 类似 80000 / 10000;
+ 
+              /* 0 -59 */
+              int minute = (类似 80000 % 10000) / 100;
+ 
+              /* 0 - 59 */
+              int second = 类似 80000 % 100;
+ 
+              today.set(second, minute, hour, monthDay, month-1, year);
+              Log.d(TAG, "Set the date and time to: " + today);
               Log.d(TAG, "Set the year to " + mDefaultYear);
                      SystemProperties.set(BOOT_SYS_PROPERTY, "false");
                  SystemClock.setCurrentTimeMillis(today.toMillis(false));
               }
            }


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

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

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
index 2140b9c..58d1b63 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java
@@ -30,7 +30,7 @@ class TelephonyIcons {
     static final int TELEPHONY_NUM_LEVELS = 5;
 
     //GSM/UMTS
-    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_sys_signal_null;
+    static final int TELEPHONY_NO_NETWORK = R.drawable.stat_null;//替换为你客户要求的图片
 
     static final int[][] TELEPHONY_SIGNAL_STRENGTH = {
         { R.drawable.stat_sys_signal_0,


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

frameworks/

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
index 6d666bd..41f04c4 100755
--- a/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
+++ b/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
@@ -23,7 +23,7 @@ import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN;
  */
 public enum NetworkType {
 
-    Type_G(0), Type_3G(1), Type_1X(2), Type_1X3G(3), Type_4G(4), Type_E(5);
+    Type_G(0), Type_3G(1), Type_1X(2), Type_1X3G(3), Type_4G(4), Type_E(5), Type_R(6);
 
     private int mTypeId;
 
diff --git a/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml b/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml
index 182dc50..2e51df1 100755
--- a/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml
+++ b/base/packages/SystemUI/res/drawable/stat_sys_signal_in.xml
@@ -4,6 +4,6 @@
     android:viewportWidth="24.0"
     android:viewportHeight="24.0">
     
 
diff --git a/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml b/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml
index dcea2f0..062714e 100755
--- a/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml
+++ b/base/packages/SystemUI/res/drawable/stat_sys_signal_inout.xml
@@ -5,10 +5,10 @@
     android:viewportHeight="24.0">
 
     
     
 
 
diff --git a/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml b/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml
index f9208bb..55d700d 100755
--- a/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml
+++ b/base/packages/SystemUI/res/drawable/stat_sys_signal_out.xml
@@ -4,6 +4,6 @@
     android:viewportWidth="24.0"
     android:viewportHeight="24.0">
     
 
diff --git a/base/packages/SystemUI/res/layout/mobile_signal_group.xml b/base/packages/SystemUI/res/layout/mobile_signal_group.xml
index 1882b65..f3c8344 100644
--- a/base/packages/SystemUI/res/layout/mobile_signal_group.xml
+++ b/base/packages/SystemUI/res/layout/mobile_signal_group.xml
@@ -21,35 +21,45 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:systemui="http://schemas.android.com/apk/res-auto"
     android:id="@+id/mobile_combo"
-    android:layout_width="wrap_content"
+    android:layout_width="23dp"
     android:layout_height="wrap_content"
     >
     
     
-    
+    
+            
+            
+    
     
 
diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index 83d672a..765669b 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -65,6 +65,7 @@ import java.util.List;
 import com.android.featureoption.FeatureOption;
 // End of Vanzo:tanglei
 
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 // Intimately tied to the design of res/layout/signal_cluster_view.xml
 public class SignalClusterView
         extends LinearLayout
@@ -332,6 +333,16 @@ public class SignalClusterView
         apply();
     }
 
+    public void setRType(NetworkType networkType, int subId) {
+         Log.d(TAG, "setNetworkType(" + subId + "), NetworkType= " + networkType);
+         PhoneState state = getOrInflateState(subId);
+         state.mRType = networkType;
+    }
+    public void setRType(NetworkType networkType, int subId) {
+         Log.d(TAG, "setNetworkType(" + subId + "), NetworkType= " + networkType);
+         PhoneState state = getOrInflateState(subId);
+         state.mRType = networkType;
+    }
     @Override
     public void setEthernetIndicators(IconState state) {
         mEthernetVisible = state.visible && !mBlockEthernet;
@@ -672,6 +683,9 @@ public class SignalClusterView
         /// Support [SIM Indicator]
         private int mSignalBackgroundIconId;
 
+        private NetworkType mRType;//ROAMING
+        private ImageView mRNetworkType;//ROAMING img
+
         /// @ }
 /* 
  * add signal up and down icon
@@ -710,6 +724,7 @@ public class SignalClusterView
             mMobileDark     = (ImageView) root.findViewById(R.id.mobile_signal_dark);
             mMobileType     = (ImageView) root.findViewById(R.id.mobile_type);
             mNetworkType    = (ImageView) root.findViewById(R.id.network_type);
+            mRNetworkType   = (ImageView) root.findViewById(R.id.mobile_r_type);
             /// M: Add for CT 6M. adjust data and activity icon. @{
             if (FeatureOptionUtils.isMTK_CT6M_SUPPORT()) {
                // add primary sim card
@@ -776,11 +791,57 @@ public class SignalClusterView
                     mPrimarySimCard.setImageResource(mPrimarySimIconId);
                 }
                 /// @}
+                
+                if (!mIsAirplaneMode && mRType != null) {
+                    int id = R.drawable.stat_sys_data_fully_connected_roam;
+                    Log.d(TAG, "apply(), mNetworkType= " + mNetworkType + " resId= " + id);
+                    mRNetworkType.setImageResource(id);
+                    mRNetworkType.setVisibility(View.VISIBLE);
+                } else {
+                    mRNetworkType.setImageDrawable(null);
+                    mRNetworkType.setVisibility(View.GONE);
+                }
 
 /* 
  * add signal up and down icon
  */
                 if (FeatureOption.VANZO_FEATURE_SYSTEMUI_SHOW_SIGNAL_UP_DOWN_ICON && mDataActivityId != 0) {
+                    int aa = mDataActivityInOut.getPaddingLeft();
+                    int bb = mDataActivityInOut.getPaddingTop();
+                    int cc = mDataActivityInOut.getPaddingRight();
+                    int dd = mDataActivityInOut.getPaddingBottom();
+
+                    int a1 = mMobileGroup.getPaddingLeft();
+                    int b2 = mMobileGroup.getPaddingTop();
+                    int c3 = mMobileGroup.getPaddingRight();
+
+
+                    int weight5 = mMobile.getWidth();
+                    int weight6 = mNetworkType.getWidth();
+                    int weight = mMobileGroup.getWidth();
+                    int weight2 = mDataActivityInOut.getWidth();
+                    int weight3 = mMobileType.getWidth();
+                    int weight4 = mMobileDark.getWidth();
+
+                    int id1 = R.drawable.stat_sys_data_fully_connected_h_plus;
+                    int id2 = R.drawable.stat_sys_data_fully_connected_3g;
+                    int id3 = R.drawable.stat_sys_data_fully_connected_4g;
+                    if(mMobileTypeId == id1) {
+                        mDataActivityInOut.setPadding(-4, bb , cc , dd);
+                    } else  if (mMobileTypeId == id2){
+                        mDataActivityInOut.setPadding(0, bb , cc , dd);
+                    } else  if (mMobileTypeId == id3){
+                        mDataActivityInOut.setPadding(0, bb , cc , dd);
+                    }else {
+                        mDataActivityInOut.setPadding(-4, bb , cc , dd);
+                    }
                     mDataActivityInOut.setImageResource(mDataActivityId);
                     mDataActivityInOut.setVisibility(View.VISIBLE);
                 } else {
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
index 32300f2..e811910 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
@@ -28,6 +28,7 @@ import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
 
 import java.util.ArrayList;
 import java.util.List;
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 /**
  * Implements network listeners and forwards the calls along onto other listeners but on
@@ -152,6 +153,19 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
     }
 
     @Override
+    public void setRType(final NetworkType networkType, final int subId) {
+        post(new Runnable() {
+            @Override
+            public void run() {
+                for (SignalCallback signalCluster : mSignalCallbacks) {
+                    ///M: Support[Network Type on StatusBar]. Add one more parameter networkIcon.
+                    signalCluster.setRType(networkType, subId);
+                }
+            }
+        });
+    }
+
+    @Override
     public void setSubs(List subs) {
         obtainMessage(MSG_SUBS_CHANGED, subs).sendToTarget();
     }
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
index 2f25267..2d5b97f 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -59,6 +59,7 @@ import java.util.Objects;
  */
 import com.android.featureoption.FeatureOption;
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 
 public class MobileSignalController extends SignalController<
@@ -94,6 +95,7 @@ public class MobileSignalController extends SignalController<
     /// @}
     /// M: For plugin.
     private IStatusBarPlugin mStatusBarExt;
+    private NetworkType mRType = null;
 
     // TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't
     // need listener lists anymore.
@@ -326,6 +328,9 @@ public class MobileSignalController extends SignalController<
         }
         /// @}
 
+        mCallbackHandler.setRType(mRType,
+                mSubscriptionInfo.getSubscriptionId());
+
         mCallbackHandler.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, networkIcon,
                 qsTypeIcon, activityIn, activityOut, 
                 /// M: Add for CT6M. add activity icon @{
@@ -572,11 +577,12 @@ public class MobileSignalController extends SignalController<
         /// M: Add for op network tower type.
         mCurrentState.customizedState = PluginFactory.getStatusBarPlugin(mContext).
             customizeMobileState(mServiceState, mCurrentState.customizedState);
-
+        
+        mRType = null;
         if (isCarrierNetworkChangeActive()) {
             mCurrentState.iconGroup = TelephonyIcons.CARRIER_NETWORK_CHANGE;
         } else if (isRoaming()) {
-            mCurrentState.iconGroup = TelephonyIcons.ROAMING;
+            mRType = NetworkType.Type_R;
         }
         if (isEmergencyOnly() != mCurrentState.isEmergency) {
             mCurrentState.isEmergency = isEmergencyOnly();
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
index 7bceed8..3891e44 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
@@ -24,6 +24,7 @@ import com.android.settingslib.wifi.AccessPoint;
 import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
 
 import java.util.List;
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 public interface NetworkController {
 
@@ -39,6 +40,8 @@ public interface NetworkController {
         void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
                 boolean activityIn, boolean activityOut, String description);
 
+        void setRType(NetworkType networkType, int subId);
+
         /** M: Support [Network Type on Statusbar]
           * Add one more parameter networkIcon to signal view and show the network type beside
           * the signal.
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
index 5dc652e..eb0dfd9 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
@@ -22,6 +22,7 @@ import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
 import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
 
 import java.util.List;
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 
 /**
@@ -34,6 +35,10 @@ public class SignalCallbackAdapter implements SignalCallback {
     public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
             boolean activityIn, boolean activityOut, String description) {
     }
+
+    public void setRType(NetworkType networkType, int subId) {
+    }
+
     /** M: Support[Network Type on StatusBar].
      * Add one more parameter networkIcon to signal view and show the network type beside
      * the signal. */
(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)

diff --git a/base/core/java/android/view/KeyEvent.java b/base/core/java/android/view/KeyEvent.java
index 7a5c01d..31b8b9a 100644
--- a/base/core/java/android/view/KeyEvent.java
+++ b/base/core/java/android/view/KeyEvent.java
@@ -1831,6 +1831,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
     /** @hide */
     public static final boolean isWakeKey(int keyCode) {
         switch (keyCode) {
+            case KeyEvent.KEYCODE_HOME:
             case KeyEvent.KEYCODE_BACK:
             case KeyEvent.KEYCODE_MENU:
             case KeyEvent.KEYCODE_WAKEUP:


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

packages/apps/Settings/

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 27a7f49..b238160 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2736,6 +2736,7 @@ for nck code
             
             	
             	
+                
             	
             
         
diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java
index aea54dd..6998cbc 100644
--- a/src/com/android/settings/sim/SimDialogActivity.java
+++ b/src/com/android/settings/sim/SimDialogActivity.java
@@ -355,6 +355,9 @@ public class SimDialogActivity extends Activity {
                             case SMS_PICK:
                                 /// M: for [SMS Always Ask]
                                 // sir = subInfoList.get(value);
+                                if(subInfoList.size()==2){
+                                    value++;
+                                }
                                 int subId = getPickSmsDefaultSub(subInfoList, value);
                                 /// M: [C2K solution 2 enhancement] [C2K solution 1.5] @{
                                 if (CdmaUtils.isCdmaCardCompetionForSms(context, subId)) {
@@ -666,10 +669,10 @@ public class SimDialogActivity extends Activity {
     private void setupSmsSubInfoList(final ArrayList list,
             final List subInfoList, final int selectableSubInfoLength,
             ArrayList smsSubInfoList) {
-        if ((selectableSubInfoLength > 1) && (mRCSExt.isNeedAskFirstItemForSms())) {
+        /*if ((selectableSubInfoLength > 1) && (mRCSExt.isNeedAskFirstItemForSms())) {
             list.add(getResources().getString(R.string.sim_calls_ask_first_prefs_title));
             smsSubInfoList.add(null);
-        }
+        }*/
         for (int i = 0; i < selectableSubInfoLength; ++i) {
             final SubscriptionInfo sir = subInfoList.get(i);
             smsSubInfoList.add(sir);
diff --git a/src/com/mediatek/settings/RestoreRotationReceiver.java b/src/com/mediatek/settings/RestoreRotationReceiver.java
index 54502b1..74cc1c6 100755
--- a/src/com/mediatek/settings/RestoreRotationReceiver.java
+++ b/src/com/mediatek/settings/RestoreRotationReceiver.java
@@ -42,11 +42,19 @@ import android.content.Intent;
 import android.provider.Settings;
 import android.util.Log;
 import android.os.UserHandle;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import java.util.List;
+import android.content.SharedPreferences;
+import android.media.AudioManager;
+import android.os.SystemProperties;
 
 
 public class RestoreRotationReceiver extends BroadcastReceiver {
 
     public static boolean sRestoreRetore = false;
+    SharedPreferences mPref;
+    AudioManager mAudioManager;
 
     @Override
     public void onReceive(Context context, Intent intent) {
@@ -65,6 +73,34 @@ public class RestoreRotationReceiver extends BroadcastReceiver {
                 Settings.System.putIntForUser(context.getContentResolver(),
                         Settings.System.ACCELEROMETER_ROTATION_RESTORE, 0, UserHandle.USER_CURRENT);
             }
+
+            //
+            android.util.Log.i("jiangyanqing", "        Intent.ACTION_BOOT_COMPLETED  "+action);
+            final SubscriptionManager subscriptionManager = SubscriptionManager.from(context);
+            List subInfoList = subscriptionManager.getActiveSubscriptionInfoList();
+
+            if(subInfoList != null){
+                int count = subInfoList.size();
+                android.util.Log.i("jiangyanqing", "       subInfoList.size   "+count);
+                if(count>0){
+                    // 设置 
+                    android.util.Log.i("jiangyanqing", "   设置 卡1  ");
+                    int firstSubId = subInfoList.get(0).getSubscriptionId();
+                    android.util.Log.i("jiangyanqing", "      firstSubId   "+firstSubId);
+                    subscriptionManager.setDefaultSmsSubId(firstSubId);
+                    subscriptionManager.setDefaultDataSubId(firstSubId);
+                }
+            }
+
+            if(SystemProperties.getBoolean("persist.sys.bes_loud",true)){
+
+                mAudioManager = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
+                if(mAudioManager != null){
+                    mAudioManager.setParameters("SetBesLoudnessStatus=0");
+                    SystemProperties.set("persist.sys.bes_loud","false");
+                }
+
+            }
         }
     }
 }



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

packages/apps/Launcher3/

新建一个空的patch文件

packages/apps/Launcher3/

diff --git a/res/values/styles.xml b/res/values/styles.xml
index 7d60cbe..dc9511c 100755
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -41,7 +41,7 @@