AOKP覚書(android4.3)その8 ― 2013年10月29日 23:27
packages/apps/Phone/res/values/strings.xml
+ <!-- MVNO SIMCard CustomSetting-->
+ <string name="mvno_sim_custom">MVNO DataOnlySIM Patch</string>
+ <string name="mvno_sim_custom_summary_enable"></string>
+ <string name="mvno_sim_custom_summary_disable"></string>
packages/apps/Phone/res/values-ja/strings.xml
+ <!-- MVNO SIMCard CustomSetting-->
+ <string name="mvno_sim_custom">MVNO Data専用SIMパッチ</string>
+ <string name="mvno_sim_custom_summary_enable">MVNO等のDATA専用SIM利用時にアンテナピクト表示およびセルスタンバイ問題を解決する</string>
+ <string name="mvno_sim_custom_summary_disable">MVNO等のDATA専用SIM利用時のアンテナピクト表示およびセルスタンバイ問題パッチを無効にする</string>
packages/apps/Phone/res/xml/network_setting.xml
+ <CheckBoxPreference
+ android:key="mvnosim_custom"
+ android:title="@string/mvno_sim_custom"
+ android:summaryOn="@string/mvno_sim_custom_summary_enable"
+ android:summaryOff="@string/mvno_sim_custom_summary_disable"/>
設定項目用の実装
packages/apps/Phone/src/com/android/phone/MobileNetworkSettings.java
@@ -200,6 +200,14 @@ public class MobileNetworkSettings extends PreferenceActivity
android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
}
return true;
+ } else if (preference == mMvnoSimCustom) {
+ //MVNO SIMCard CustomSetting
+ if (mMvnoSimCustom.isChecked()) {
+ SystemProperties.set(MVNO_SIM_CUSTOM_PROPERTY, "true");
+ } else {
+ SystemProperties.set(MVNO_SIM_CUSTOM_PROPERTY, "false");
+ }
+ return true;
} else {
// if the button is anything but the simple toggle preference,
// we'll need to disable all preferences to reject all click
@@ -228,6 +236,14 @@ public class MobileNetworkSettings extends PreferenceActivity
mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
BUTTON_PREFERED_NETWORK_MODE);
mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
+ //MVNO SIMCard CustomSetting
+ mMvnoSimCustom = (CheckBoxPreference) prefSet.findPreference(MVNO_SIM_CUSTOM_KEY);
+ String mvnosim = SystemProperties.get("persist.radio.mvnosim.custom");
+ if ("true".equals(mvnosim)) {
+ mMvnoSimCustom.setChecked(true);
+ } else {
+ mMvnoSimCustom.setChecked(false);
+ }
boolean isLteOnCdma = mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
boolean isLteOnGsm = mPhone.getLteOnGsmMode() != 0;
@@ -705,4 +721,9 @@ public class MobileNetworkSettings extends PreferenceActivity
}
return super.onOptionsItemSelected(item);
}
+
+ //MVNO SIMCard CustomSetting
+ private static final String MVNO_SIM_CUSTOM_PROPERTY = "persist.radio.mvnosim.custom";
+ private static final String MVNO_SIM_CUSTOM_KEY = "mvnosim_custom";
+ private CheckBoxPreference mMvnoSimCustom;
}
動作部分の実装
frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -244,7 +245,8 @@ public abstract class ServiceStateTracker extends Handler {
* data only devices, to fix that use DataRegState.
*/
protected void useDataRegStateForDataOnlyDevices() {
- if (mVoiceCapable == false) {
+ String mvnosim = SystemProperties.get("persist.radio.mvnosim.custom");
+ if ("true".equals(mvnosim) || mVoiceCapable == false) {
if (DBG) {
log("useDataRegStateForDataOnlyDevice: VoiceRegState=" + mNewSS.getVoiceRegState()
+ " DataRegState=" + mNewSS.getDataRegState());
+ <string name="mvno_sim_custom">MVNO DataOnlySIM Patch</string>
+ <string name="mvno_sim_custom_summary_enable"></string>
+ <string name="mvno_sim_custom_summary_disable"></string>
packages/apps/Phone/res/values-ja/strings.xml
+ <!-- MVNO SIMCard CustomSetting-->
+ <string name="mvno_sim_custom">MVNO Data専用SIMパッチ</string>
+ <string name="mvno_sim_custom_summary_enable">MVNO等のDATA専用SIM利用時にアンテナピクト表示およびセルスタンバイ問題を解決する</string>
+ <string name="mvno_sim_custom_summary_disable">MVNO等のDATA専用SIM利用時のアンテナピクト表示およびセルスタンバイ問題パッチを無効にする</string>
packages/apps/Phone/res/xml/network_setting.xml
+ <CheckBoxPreference
+ android:key="mvnosim_custom"
+ android:title="@string/mvno_sim_custom"
+ android:summaryOn="@string/mvno_sim_custom_summary_enable"
+ android:summaryOff="@string/mvno_sim_custom_summary_disable"/>
設定項目用の実装
packages/apps/Phone/src/com/android/phone/MobileNetworkSettings.java
@@ -200,6 +200,14 @@ public class MobileNetworkSettings extends PreferenceActivity
android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
}
return true;
+ } else if (preference == mMvnoSimCustom) {
+ //MVNO SIMCard CustomSetting
+ if (mMvnoSimCustom.isChecked()) {
+ SystemProperties.set(MVNO_SIM_CUSTOM_PROPERTY, "true");
+ } else {
+ SystemProperties.set(MVNO_SIM_CUSTOM_PROPERTY, "false");
+ }
+ return true;
} else {
// if the button is anything but the simple toggle preference,
// we'll need to disable all preferences to reject all click
@@ -228,6 +236,14 @@ public class MobileNetworkSettings extends PreferenceActivity
mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
BUTTON_PREFERED_NETWORK_MODE);
mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
+ //MVNO SIMCard CustomSetting
+ mMvnoSimCustom = (CheckBoxPreference) prefSet.findPreference(MVNO_SIM_CUSTOM_KEY);
+ String mvnosim = SystemProperties.get("persist.radio.mvnosim.custom");
+ if ("true".equals(mvnosim)) {
+ mMvnoSimCustom.setChecked(true);
+ } else {
+ mMvnoSimCustom.setChecked(false);
+ }
boolean isLteOnCdma = mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
boolean isLteOnGsm = mPhone.getLteOnGsmMode() != 0;
@@ -705,4 +721,9 @@ public class MobileNetworkSettings extends PreferenceActivity
}
return super.onOptionsItemSelected(item);
}
+
+ //MVNO SIMCard CustomSetting
+ private static final String MVNO_SIM_CUSTOM_PROPERTY = "persist.radio.mvnosim.custom";
+ private static final String MVNO_SIM_CUSTOM_KEY = "mvnosim_custom";
+ private CheckBoxPreference mMvnoSimCustom;
}
動作部分の実装
frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -244,7 +245,8 @@ public abstract class ServiceStateTracker extends Handler {
* data only devices, to fix that use DataRegState.
*/
protected void useDataRegStateForDataOnlyDevices() {
- if (mVoiceCapable == false) {
+ String mvnosim = SystemProperties.get("persist.radio.mvnosim.custom");
+ if ("true".equals(mvnosim) || mVoiceCapable == false) {
if (DBG) {
log("useDataRegStateForDataOnlyDevice: VoiceRegState=" + mNewSS.getVoiceRegState()
+ " DataRegState=" + mNewSS.getDataRegState());
コメント
トラックバック
このエントリのトラックバックURL: http://miyako.asablo.jp/blog/2013/10/29/7027058/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。