OSDN Git Service

Remove phone information for a secondary user
authorRaju Yadav <raju.yadav@sonymobile.com>
Wed, 29 Apr 2015 09:04:49 +0000 (11:04 +0200)
committerJohan Redestig <johan.redestig@sonymobile.com>
Thu, 7 May 2015 18:22:24 +0000 (20:22 +0200)
Default phone information is not available for a secondary
user and when accessed using service command *#*#INFO#*#*,
it causes crash in Settings. Removed the preference for a
secondary user.

To verify:
1. Add user(slide down status bar>user icon>Add user>
   OK>finish the setup guide).
2. As new user launch Phone app>input “*#*#4636#*#*”>
   tap Phone information>check
Causes Settings to crash with:
  Caused by: java.lang.IllegalStateException: Default phones haven't been made yet!
  at com.android.internal.telephony.PhoneFactory.getDefaultPhone(PhoneFactory.java:214)
  at com.android.settings.RadioInfo.onCreate(RadioInfo.java:263)
  at android.app.Activity.performCreate(Activity.java:5990)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)

Change-Id: Ie23107c5eead04183cfd8b5460a9a7a3426a99b8

res/xml/testing_settings.xml
src/com/android/settings/TestingSettings.java

index c55cb46..4d4d2a5 100644 (file)
@@ -18,7 +18,8 @@
         android:title="@string/testing" >
             
     <PreferenceScreen
-            android:title="@string/testing_phone_info">
+            android:title="@string/testing_phone_info"
+            android:key="radio_info_settings">
         <intent android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.RadioInfo" />
index 3994560..b20d327 100644 (file)
@@ -17,7 +17,9 @@
 package com.android.settings;
 
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
 
 public class TestingSettings extends PreferenceActivity {
 
@@ -26,6 +28,12 @@ public class TestingSettings extends PreferenceActivity {
         super.onCreate(savedInstanceState);
         
         addPreferencesFromResource(R.xml.testing_settings);
+
+        if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
+            PreferenceScreen preferenceScreen = (PreferenceScreen)
+                    findPreference("radio_info_settings");
+            getPreferenceScreen().removePreference(preferenceScreen);
+        }
     }
 
 }