summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings')
-rw-r--r--src/com/android/settings/CreateShortcut.java23
-rw-r--r--src/com/android/settings/TetherSettings.java15
2 files changed, 38 insertions, 0 deletions
diff --git a/src/com/android/settings/CreateShortcut.java b/src/com/android/settings/CreateShortcut.java
index 0312a4b..f71df1d 100644
--- a/src/com/android/settings/CreateShortcut.java
+++ b/src/com/android/settings/CreateShortcut.java
@@ -18,10 +18,15 @@ package com.android.settings;
import android.app.LauncherActivity;
import android.content.Intent;
+import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
+import com.android.settings.Settings.TetherSettingsActivity;
+
+import java.util.List;
+
public class CreateShortcut extends LauncherActivity {
@Override
@@ -49,4 +54,22 @@ public class CreateShortcut extends LauncherActivity {
protected boolean onEvaluateShowIcons() {
return false;
}
+
+ /**
+ * Perform query on package manager for list items. The default
+ * implementation queries for activities.
+ */
+ protected List<ResolveInfo> onQueryPackageManager(Intent queryIntent) {
+ List<ResolveInfo> activities = super.onQueryPackageManager(queryIntent);
+ if (activities == null) return null;
+ for (int i = activities.size() - 1; i >= 0; i--) {
+ ResolveInfo info = activities.get(i);
+ if (info.activityInfo.name.endsWith(TetherSettingsActivity.class.getSimpleName())) {
+ if (!TetherSettings.showInShortcuts(this)) {
+ activities.remove(i);
+ }
+ }
+ }
+ return activities;
+ }
}
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index d2c99dc..f0b6b44 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -38,6 +38,8 @@ import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Environment;
import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.os.UserManager;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceScreen;
@@ -590,4 +592,17 @@ public class TetherSettings extends SettingsPreferenceFragment
public int getHelpResource() {
return R.string.help_url_tether;
}
+
+ /**
+ * Checks whether this screen will have anything to show on this device. This is called by
+ * the shortcut picker for Settings shortcuts (home screen widget).
+ * @param context a context object for getting a system service.
+ * @return whether Tether & portable hotspot should be shown in the shortcuts picker.
+ */
+ public static boolean showInShortcuts(Context context) {
+ final ConnectivityManager cm =
+ (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ final boolean isSecondaryUser = UserHandle.myUserId() != UserHandle.USER_OWNER;
+ return !isSecondaryUser && cm.isTetheringSupported();
+ }
}