summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2013-07-26 13:38:41 -0700
committerAmith Yamasani <yamasani@google.com>2013-07-30 16:24:58 -0700
commita677ee210c67d13d15ba0663887675bda16354d8 (patch)
tree5c2552ff9d8549ed6eb591fa67225d5a9b5553a3 /src/com/android/settings
parent040ce605826af509f6391e3536204c07476dc28a (diff)
downloadpackages_apps_Settings-a677ee210c67d13d15ba0663887675bda16354d8.tar.gz
packages_apps_Settings-a677ee210c67d13d15ba0663887675bda16354d8.tar.bz2
packages_apps_Settings-a677ee210c67d13d15ba0663887675bda16354d8.zip
Whitelist fragments appropriate for an activity
Change-Id: If4f8c4e9d9949b652946cffe0ebb09b587e5a042
Diffstat (limited to 'src/com/android/settings')
-rw-r--r--src/com/android/settings/ChooseLockGeneric.java8
-rw-r--r--src/com/android/settings/ChooseLockPassword.java7
-rw-r--r--src/com/android/settings/ChooseLockPattern.java7
-rw-r--r--src/com/android/settings/ConfirmLockPassword.java7
-rw-r--r--src/com/android/settings/ConfirmLockPattern.java6
-rw-r--r--src/com/android/settings/Settings.java70
-rw-r--r--src/com/android/settings/SubSettings.java11
-rw-r--r--src/com/android/settings/accounts/SyncSettingsActivity.java9
-rw-r--r--src/com/android/settings/applications/InstalledAppDetailsTop.java11
-rw-r--r--src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerActivity.java10
-rw-r--r--src/com/android/settings/wifi/WifiPickerActivity.java7
11 files changed, 153 insertions, 0 deletions
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 8db5a75e25..d4b9a26cb0 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -17,6 +17,7 @@
package com.android.settings;
import android.app.Activity;
+import android.app.Fragment;
import android.app.PendingIntent;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
@@ -35,6 +36,7 @@ import android.view.ViewGroup;
import android.widget.ListView;
import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.ConfirmLockPattern.ConfirmLockPatternFragment;
import java.util.List;
@@ -50,6 +52,12 @@ public class ChooseLockGeneric extends PreferenceActivity {
return modIntent;
}
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (ChooseLockGenericFragment.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
public static class ChooseLockGenericFragment extends SettingsPreferenceFragment {
private static final int MIN_PASSWORD_LENGTH = 4;
private static final String KEY_UNLOCK_BACKUP_INFO = "unlock_backup_info";
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index b16f3f6787..c6f5212c33 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -19,6 +19,7 @@ package com.android.settings;
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.PasswordEntryKeyboardHelper;
import com.android.internal.widget.PasswordEntryKeyboardView;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
import android.app.Activity;
import android.app.Fragment;
@@ -65,6 +66,12 @@ public class ChooseLockPassword extends PreferenceActivity {
}
@Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (ChooseLockPasswordFragment.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
// TODO: Fix on phones
// Disable IME on our window since we provide our own keyboard
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index f9c01b6fc9..c3045e26ef 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -22,6 +22,7 @@ import com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient;
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternView;
import com.android.internal.widget.LockPatternView.Cell;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
import static com.android.internal.widget.LockPatternView.DisplayMode;
@@ -69,6 +70,12 @@ public class ChooseLockPattern extends PreferenceActivity {
}
@Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (ChooseLockPatternFragment.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
// requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java
index 96839bab7b..d7402daff8 100644
--- a/src/com/android/settings/ConfirmLockPassword.java
+++ b/src/com/android/settings/ConfirmLockPassword.java
@@ -19,6 +19,7 @@ package com.android.settings;
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.PasswordEntryKeyboardHelper;
import com.android.internal.widget.PasswordEntryKeyboardView;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
import android.app.Activity;
import android.app.Fragment;
@@ -52,6 +53,12 @@ public class ConfirmLockPassword extends PreferenceActivity {
}
@Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (ConfirmLockPasswordFragment.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
// Disable IME on our window since we provide our own keyboard
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java
index dd375cc3c4..3a1f06c339 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/ConfirmLockPattern.java
@@ -76,6 +76,12 @@ public class ConfirmLockPattern extends PreferenceActivity {
return modIntent;
}
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (ConfirmLockPatternFragment.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
public static class ConfirmLockPatternFragment extends Fragment {
// how long we wait to clear a wrong pattern
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index e90b1cd168..20ec1a695f 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -19,6 +19,7 @@ package com.android.settings;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.OnAccountsUpdateListener;
+import android.app.Fragment;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -53,13 +54,31 @@ import android.widget.Switch;
import android.widget.TextView;
import com.android.internal.util.ArrayUtils;
+import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
+import com.android.settings.ChooseLockPassword.ChooseLockPasswordFragment;
+import com.android.settings.ChooseLockPattern.ChooseLockPatternFragment;
import com.android.settings.accounts.AccountSyncSettings;
import com.android.settings.accounts.AuthenticatorHelper;
import com.android.settings.accounts.ManageAccountsSettings;
+import com.android.settings.applications.AppOpsSummary;
+import com.android.settings.applications.ManageApplications;
import com.android.settings.bluetooth.BluetoothEnabler;
import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.deviceinfo.Memory;
+import com.android.settings.deviceinfo.UsbSettings;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
+import com.android.settings.inputmethod.SpellCheckersSettings;
+import com.android.settings.inputmethod.UserDictionaryList;
+import com.android.settings.nfc.AndroidBeam;
+import com.android.settings.tts.TextToSpeechSettings;
+import com.android.settings.users.AppRestrictionsFragment;
+import com.android.settings.users.UserSettings;
+import com.android.settings.vpn2.VpnSettings;
import com.android.settings.wfd.WifiDisplaySettings;
+import com.android.settings.wifi.AdvancedWifiSettings;
import com.android.settings.wifi.WifiEnabler;
import com.android.settings.wifi.WifiSettings;
import com.android.settings.wifi.p2p.WifiP2pSettings;
@@ -267,6 +286,56 @@ public class Settings extends PreferenceActivity
}
}
+ private static final String[] ENTRY_FRAGMENTS = {
+ WirelessSettings.class.getName(),
+ WifiSettings.class.getName(),
+ AdvancedWifiSettings.class.getName(),
+ BluetoothSettings.class.getName(),
+ TetherSettings.class.getName(),
+ WifiP2pSettings.class.getName(),
+ VpnSettings.class.getName(),
+ DateTimeSettings.class.getName(),
+ LocalePicker.class.getName(),
+ InputMethodAndLanguageSettings.class.getName(),
+ SpellCheckersSettings.class.getName(),
+ UserDictionaryList.class.getName(),
+ UserDictionarySettings.class.getName(),
+ SoundSettings.class.getName(),
+ DisplaySettings.class.getName(),
+ DeviceInfoSettings.class.getName(),
+ ManageApplications.class.getName(),
+ NotificationStation.class.getName(),
+ AppOpsSummary.class.getName(),
+ LocationSettings.class.getName(),
+ SecuritySettings.class.getName(),
+ PrivacySettings.class.getName(),
+ DeviceAdminSettings.class.getName(),
+ AccessibilitySettings.class.getName(),
+ TextToSpeechSettings.class.getName(),
+ Memory.class.getName(),
+ DevelopmentSettings.class.getName(),
+ UsbSettings.class.getName(),
+ AndroidBeam.class.getName(),
+ WifiDisplaySettings.class.getName(),
+ PowerUsageSummary.class.getName(),
+ AccountSyncSettings.class.getName(),
+ CryptKeeperSettings.class.getName(),
+ DataUsageSummary.class.getName(),
+ DreamSettings.class.getName(),
+ UserSettings.class.getName(),
+ NotificationAccessSettings.class.getName(),
+ };
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ // Almost all fragments are wrapped in this,
+ // except for a few that have their own activities.
+ for (int i = 0; i < ENTRY_FRAGMENTS.length; i++) {
+ if (ENTRY_FRAGMENTS[i].equals(fragmentName)) return true;
+ }
+ return false;
+ }
+
private void switchToHeaderLocal(Header header) {
mInLocalHeaderSwitch = true;
switchToHeader(header);
@@ -877,4 +946,5 @@ public class Settings extends PreferenceActivity
public static class NotificationStationActivity extends Settings { /* empty */ }
public static class UserSettingsActivity extends Settings { /* empty */ }
public static class NotificationAccessSettingsActivity extends Settings { /* empty */ }
+ public static class UsbSettingsActivity extends Settings { /* empty */ }
}
diff --git a/src/com/android/settings/SubSettings.java b/src/com/android/settings/SubSettings.java
index eb275ad6e8..34e9ba3a70 100644
--- a/src/com/android/settings/SubSettings.java
+++ b/src/com/android/settings/SubSettings.java
@@ -16,6 +16,11 @@
package com.android.settings;
+import android.app.Fragment;
+import android.util.Log;
+
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
+
/**
* Stub class for showing sub-settings; we can't use the main Settings class
* since for our app it is a special singleTask class.
@@ -27,4 +32,10 @@ public class SubSettings extends Settings {
finish();
return true;
}
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ Log.d("SubSettings", "Launching fragment " + fragmentName);
+ return true;
+ }
}
diff --git a/src/com/android/settings/accounts/SyncSettingsActivity.java b/src/com/android/settings/accounts/SyncSettingsActivity.java
index ed0089e936..96f16d684a 100644
--- a/src/com/android/settings/accounts/SyncSettingsActivity.java
+++ b/src/com/android/settings/accounts/SyncSettingsActivity.java
@@ -16,9 +16,12 @@
package com.android.settings.accounts;
+import android.app.Fragment;
import android.content.Intent;
import android.preference.PreferenceActivity;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
+
/**
* Launcher activity for the SyncSettings fragment.
*
@@ -31,4 +34,10 @@ public class SyncSettingsActivity extends PreferenceActivity {
modIntent.putExtra(EXTRA_NO_HEADERS, true);
return modIntent;
}
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (SyncSettings.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
} \ No newline at end of file
diff --git a/src/com/android/settings/applications/InstalledAppDetailsTop.java b/src/com/android/settings/applications/InstalledAppDetailsTop.java
index 4051aeba76..44a88fb5e4 100644
--- a/src/com/android/settings/applications/InstalledAppDetailsTop.java
+++ b/src/com/android/settings/applications/InstalledAppDetailsTop.java
@@ -1,9 +1,13 @@
package com.android.settings.applications;
+import android.app.Fragment;
import android.content.Intent;
import android.preference.PreferenceActivity;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
+
public class InstalledAppDetailsTop extends PreferenceActivity {
+
@Override
public Intent getIntent() {
Intent modIntent = new Intent(super.getIntent());
@@ -11,4 +15,11 @@ public class InstalledAppDetailsTop extends PreferenceActivity {
modIntent.putExtra(EXTRA_NO_HEADERS, true);
return modIntent;
}
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (InstalledAppDetails.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
}
diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerActivity.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerActivity.java
index d70d5e4419..5693e209ed 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerActivity.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerActivity.java
@@ -15,9 +15,12 @@
*/
package com.android.settings.inputmethod;
+import android.app.Fragment;
import android.content.Intent;
import android.preference.PreferenceActivity;
+import com.android.settings.ChooseLockPassword.ChooseLockPasswordFragment;
+
public class InputMethodAndSubtypeEnablerActivity extends PreferenceActivity {
@Override
public Intent getIntent() {
@@ -28,4 +31,11 @@ public class InputMethodAndSubtypeEnablerActivity extends PreferenceActivity {
}
return modIntent;
}
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (InputMethodAndSubtypeEnabler.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
}
diff --git a/src/com/android/settings/wifi/WifiPickerActivity.java b/src/com/android/settings/wifi/WifiPickerActivity.java
index 12612b5a72..df6ed9da45 100644
--- a/src/com/android/settings/wifi/WifiPickerActivity.java
+++ b/src/com/android/settings/wifi/WifiPickerActivity.java
@@ -16,6 +16,7 @@
package com.android.settings.wifi;
import com.android.settings.ButtonBarHandler;
+import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment;
import android.app.Fragment;
import android.content.Intent;
@@ -42,6 +43,12 @@ public class WifiPickerActivity extends PreferenceActivity implements ButtonBarH
return modIntent;
}
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (WifiSettings.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
/**
* Almost dead copy of
* {@link PreferenceActivity#startWithFragment(String, Bundle, Fragment, int)}, except