diff options
author | Amith Yamasani <yamasani@google.com> | 2013-07-26 13:38:41 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2013-07-30 16:24:58 -0700 |
commit | a677ee210c67d13d15ba0663887675bda16354d8 (patch) | |
tree | 5c2552ff9d8549ed6eb591fa67225d5a9b5553a3 /src | |
parent | 040ce605826af509f6391e3536204c07476dc28a (diff) | |
download | packages_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')
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 |