diff options
| -rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java (renamed from packages/SystemUI/src/com/android/systemui/chooser/ChooserActivity.java) | 65 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/IntentForwarderActivity.java | 2 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 103 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/ResolverComparator.java | 30 | ||||
| -rw-r--r-- | core/res/AndroidManifest.xml | 13 | ||||
| -rw-r--r-- | packages/SystemUI/AndroidManifest.xml | 19 | ||||
| -rw-r--r-- | packages/SystemUI/res/values/arrays.xml | 12 | ||||
| -rw-r--r-- | packages/SystemUI/res/values/strings.xml | 5 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/chooser/ResolverTargetActionsDialogFragment.java | 98 |
9 files changed, 67 insertions, 280 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/chooser/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index a8bc36e58e19..27333915b2b6 100644 --- a/packages/SystemUI/src/com/android/systemui/chooser/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.chooser; +package com.android.internal.app; import android.animation.ObjectAnimator; import android.annotation.NonNull; @@ -25,7 +25,6 @@ import android.content.Intent; import android.content.IntentSender; import android.content.IntentSender.SendIntentException; import android.content.ServiceConnection; -import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.LabeledIntent; import android.content.pm.PackageManager; @@ -36,7 +35,6 @@ import android.graphics.Color; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.os.Bundle; -import android.os.Environment; import android.os.Handler; import android.os.IBinder; import android.os.Message; @@ -67,12 +65,9 @@ import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.ListView; import com.android.internal.R; -import com.android.internal.app.IntentForwarderActivity; -import com.android.internal.app.ResolverActivity; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; -import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -96,11 +91,6 @@ public class ChooserActivity extends ResolverActivity { private ChooserListAdapter mChooserListAdapter; private ChooserRowAdapter mChooserRowAdapter; - private SharedPreferences mPinnedSharedPrefs; - private static final float PINNED_TARGET_SCORE_BOOST = 1000.f; - private static final String PINNED_SHARED_PREFS_NAME = "chooser_pin_settings"; - private static final String TARGET_DETAILS_FRAGMENT_TAG = "targetDetailsFragment"; - private final List<ChooserTargetServiceConnection> mServiceConnections = new ArrayList<>(); private static final int CHOOSER_TARGET_SERVICE_RESULT = 1; @@ -217,18 +207,12 @@ public class ChooserActivity extends ResolverActivity { mRefinementIntentSender = intent.getParcelableExtra( Intent.EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER); setSafeForwardingMode(true); - - mPinnedSharedPrefs = getPinnedSharedPrefs(this); super.onCreate(savedInstanceState, target, title, defaultTitleRes, initialIntents, null, false); MetricsLogger.action(this, MetricsEvent.ACTION_ACTIVITY_CHOOSER_SHOWN); } - static SharedPreferences getPinnedSharedPrefs(Context context) { - return context.getSharedPreferences(PINNED_SHARED_PREFS_NAME, MODE_PRIVATE); - } - @Override protected void onDestroy() { super.onDestroy(); @@ -259,7 +243,7 @@ public class ChooserActivity extends ResolverActivity { } @Override - public void onActivityStarted(TargetInfo cti) { + void onActivityStarted(TargetInfo cti) { if (mChosenComponentSender != null) { final ComponentName target = cti.getResolvedComponentName(); if (target != null) { @@ -275,7 +259,7 @@ public class ChooserActivity extends ResolverActivity { } @Override - public void onPrepareAdapterView(AbsListView adapterView, ResolveListAdapter adapter, + void onPrepareAdapterView(AbsListView adapterView, ResolveListAdapter adapter, boolean alwaysUseOption) { final ListView listView = adapterView instanceof ListView ? (ListView) adapterView : null; mChooserListAdapter = (ChooserListAdapter) adapter; @@ -288,17 +272,17 @@ public class ChooserActivity extends ResolverActivity { } @Override - public int getLayoutResource() { + int getLayoutResource() { return R.layout.chooser_grid; } @Override - public boolean shouldGetActivityMetadata() { + boolean shouldGetActivityMetadata() { return true; } @Override - public boolean shouldAutoLaunchSingleChoice(TargetInfo target) { + boolean shouldAutoLaunchSingleChoice(TargetInfo target) { final Intent intent = target.getResolvedIntent(); final ResolveInfo resolve = target.getResolveInfo(); @@ -315,16 +299,6 @@ public class ChooserActivity extends ResolverActivity { return false; } - @Override - public void showTargetDetails(ResolveInfo ri) { - ComponentName name = ri.activityInfo.getComponentName(); - boolean pinned = mPinnedSharedPrefs.getBoolean(name.flattenToString(), false); - ResolverTargetActionsDialogFragment f = - new ResolverTargetActionsDialogFragment(ri.loadLabel(getPackageManager()), - name, pinned); - f.show(getFragmentManager(), TARGET_DETAILS_FRAGMENT_TAG); - } - private void modifyTargetIntent(Intent in) { final String action = in.getAction(); if (Intent.ACTION_SEND.equals(action) || @@ -366,7 +340,7 @@ public class ChooserActivity extends ResolverActivity { } @Override - public void startSelected(int which, boolean always, boolean filtered) { + void startSelected(int which, boolean always, boolean filtered) { super.startSelected(which, always, filtered); if (mChooserListAdapter != null) { @@ -497,7 +471,7 @@ public class ChooserActivity extends ResolverActivity { mChooserHandler.removeMessages(CHOOSER_TARGET_SERVICE_WATCHDOG_TIMEOUT); } - public void onSetupVoiceInteraction() { + void onSetupVoiceInteraction() { // Do nothing. We'll send the voice stuff ourselves. } @@ -569,7 +543,7 @@ public class ChooserActivity extends ResolverActivity { } @Override - public ResolveListAdapter createAdapter(Context context, List<Intent> payloadIntents, + ResolveListAdapter createAdapter(Context context, List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, int launchedFromUid, boolean filterLastUsed) { final ChooserListAdapter adapter = new ChooserListAdapter(context, payloadIntents, @@ -737,11 +711,6 @@ public class ChooserActivity extends ResolverActivity { } return results; } - - @Override - public boolean isPinned() { - return mSourceInfo != null ? mSourceInfo.isPinned() : false; - } } public class ChooserListAdapter extends ResolveListAdapter { @@ -808,20 +777,6 @@ public class ChooserActivity extends ResolverActivity { } @Override - public boolean isComponentPinned(ComponentName name) { - return mPinnedSharedPrefs.getBoolean(name.flattenToString(), false); - } - - @Override - public float getScore(DisplayResolveInfo target) { - float score = super.getScore(target); - if (target.isPinned()) { - score += PINNED_TARGET_SCORE_BOOST; - } - return score; - } - - @Override public View onCreateView(ViewGroup parent) { return mInflater.inflate( com.android.internal.R.layout.resolve_grid_item, parent, false); @@ -1166,7 +1121,7 @@ public class ChooserActivity extends ResolverActivity { v.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { - showTargetDetails( + showAppDetails( mChooserListAdapter.resolveInfoForPosition( holder.itemIndices[column], true)); return true; diff --git a/core/java/com/android/internal/app/IntentForwarderActivity.java b/core/java/com/android/internal/app/IntentForwarderActivity.java index 12449871bad9..dbec7405fe49 100644 --- a/core/java/com/android/internal/app/IntentForwarderActivity.java +++ b/core/java/com/android/internal/app/IntentForwarderActivity.java @@ -100,7 +100,7 @@ public class IntentForwarderActivity extends Activity { final boolean shouldShowDisclosure = ri == null || ri.activityInfo == null || !"android".equals(ri.activityInfo.packageName) || !(ResolverActivity.class.getName().equals(ri.activityInfo.name) - || "com.android.systemui.chooser.ChooserActivity".equals(ri.activityInfo.name)); + || ChooserActivity.class.getName().equals(ri.activityInfo.name)); try { startActivityAsCaller(newIntent, null, false, targetUserId); diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 7eb8708cb916..ec148c554bb7 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -22,7 +22,6 @@ import android.app.ActivityThread; import android.app.VoiceInteractor.PickOptionRequest; import android.app.VoiceInteractor.PickOptionRequest.Option; import android.app.VoiceInteractor.Prompt; -import android.content.pm.ComponentInfo; import android.os.AsyncTask; import android.provider.Settings; import android.text.TextUtils; @@ -337,12 +336,12 @@ public class ResolverActivity extends Activity { /** * Perform any initialization needed for voice interaction. */ - public void onSetupVoiceInteraction() { + void onSetupVoiceInteraction() { // Do it right now. Subclasses may delay this and send it later. sendVoiceChoicesIfNeeded(); } - public void sendVoiceChoicesIfNeeded() { + void sendVoiceChoicesIfNeeded() { if (!isVoiceInteraction()) { // Clearly not needed. return; @@ -383,7 +382,7 @@ public class ResolverActivity extends Activity { return null; } - public int getLayoutResource() { + int getLayoutResource() { return R.layout.resolver_list; } @@ -592,7 +591,7 @@ public class ResolverActivity extends Activity { mAlwaysUseOption); } - public void startSelected(int which, boolean always, boolean filtered) { + void startSelected(int which, boolean always, boolean filtered) { if (isFinishing()) { return; } @@ -762,7 +761,7 @@ public class ResolverActivity extends Activity { return true; } - public void safelyStartActivity(TargetInfo cti) { + void safelyStartActivity(TargetInfo cti) { // If needed, show that intent is forwarded // from managed profile to owner or other way around. if (mProfileSwitchMessageId != -1) { @@ -792,26 +791,26 @@ public class ResolverActivity extends Activity { } } - public void onActivityStarted(TargetInfo cti) { + void onActivityStarted(TargetInfo cti) { // Do nothing } - public boolean shouldGetActivityMetadata() { + boolean shouldGetActivityMetadata() { return false; } - public boolean shouldAutoLaunchSingleChoice(TargetInfo target) { + boolean shouldAutoLaunchSingleChoice(TargetInfo target) { return true; } - public void showTargetDetails(ResolveInfo ri) { + void showAppDetails(ResolveInfo ri) { Intent in = new Intent().setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) .setData(Uri.fromParts("package", ri.activityInfo.packageName, null)) .addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); startActivity(in); } - public ResolveListAdapter createAdapter(Context context, List<Intent> payloadIntents, + ResolveListAdapter createAdapter(Context context, List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, int launchedFromUid, boolean filterLastUsed) { return new ResolveListAdapter(context, payloadIntents, initialIntents, rList, @@ -821,7 +820,7 @@ public class ResolverActivity extends Activity { /** * Returns true if the activity is finishing and creation should halt */ - public boolean configureContentView(List<Intent> payloadIntents, Intent[] initialIntents, + boolean configureContentView(List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, boolean alwaysUseOption) { // The last argument of createAdapter is whether to do special handling // of the last used choice to highlight it in the list. We need to always @@ -868,7 +867,7 @@ public class ResolverActivity extends Activity { return false; } - public void onPrepareAdapterView(AbsListView adapterView, ResolveListAdapter adapter, + void onPrepareAdapterView(AbsListView adapterView, ResolveListAdapter adapter, boolean alwaysUseOption) { final boolean useHeader = adapter.hasFilteredItem(); final ListView listView = adapterView instanceof ListView ? (ListView) adapterView : null; @@ -899,7 +898,7 @@ public class ResolverActivity extends Activity { && Objects.equals(lhs.activityInfo.packageName, rhs.activityInfo.packageName); } - public final class DisplayResolveInfo implements TargetInfo { + final class DisplayResolveInfo implements TargetInfo { private final ResolveInfo mResolveInfo; private final CharSequence mDisplayLabel; private Drawable mDisplayIcon; @@ -907,9 +906,8 @@ public class ResolverActivity extends Activity { private final CharSequence mExtendedInfo; private final Intent mResolvedIntent; private final List<Intent> mSourceIntents = new ArrayList<>(); - private boolean mPinned; - public DisplayResolveInfo(Intent originalIntent, ResolveInfo pri, CharSequence pLabel, + DisplayResolveInfo(Intent originalIntent, ResolveInfo pri, CharSequence pLabel, CharSequence pInfo, Intent pOrigIntent) { mSourceIntents.add(originalIntent); mResolveInfo = pri; @@ -934,7 +932,6 @@ public class ResolverActivity extends Activity { mExtendedInfo = other.mExtendedInfo; mResolvedIntent = new Intent(other.mResolvedIntent); mResolvedIntent.fillIn(fillInIntent, flags); - mPinned = other.mPinned; } public ResolveInfo getResolveInfo() { @@ -1029,15 +1026,6 @@ public class ResolverActivity extends Activity { activity.startActivityAsUser(mResolvedIntent, options, user); return false; } - - @Override - public boolean isPinned() { - return mPinned; - } - - public void setPinned(boolean pinned) { - mPinned = pinned; - } } /** @@ -1051,7 +1039,7 @@ public class ResolverActivity extends Activity { * * @return the resolved intent for this target */ - Intent getResolvedIntent(); + public Intent getResolvedIntent(); /** * Get the resolved component name that represents this target. Note that this may not @@ -1060,7 +1048,7 @@ public class ResolverActivity extends Activity { * * @return the resolved ComponentName for this target */ - ComponentName getResolvedComponentName(); + public ComponentName getResolvedComponentName(); /** * Start the activity referenced by this target. @@ -1069,7 +1057,7 @@ public class ResolverActivity extends Activity { * @param options ActivityOptions bundle * @return true if the start completed successfully */ - boolean start(Activity activity, Bundle options); + public boolean start(Activity activity, Bundle options); /** * Start the activity referenced by this target as if the ResolverActivity's caller @@ -1080,7 +1068,7 @@ public class ResolverActivity extends Activity { * @param userId userId to start as or {@link UserHandle#USER_NULL} for activity's caller * @return true if the start completed successfully */ - boolean startAsCaller(Activity activity, Bundle options, int userId); + public boolean startAsCaller(Activity activity, Bundle options, int userId); /** * Start the activity referenced by this target as a given user. @@ -1090,7 +1078,7 @@ public class ResolverActivity extends Activity { * @param user handle for the user to start the activity as * @return true if the start completed successfully */ - boolean startAsUser(Activity activity, Bundle options, UserHandle user); + public boolean startAsUser(Activity activity, Bundle options, UserHandle user); /** * Return the ResolveInfo about how and why this target matched the original query @@ -1098,14 +1086,14 @@ public class ResolverActivity extends Activity { * * @return ResolveInfo representing this target's match */ - ResolveInfo getResolveInfo(); + public ResolveInfo getResolveInfo(); /** * Return the human-readable text label for this target. * * @return user-visible target label */ - CharSequence getDisplayLabel(); + public CharSequence getDisplayLabel(); /** * Return any extended info for this target. This may be used to disambiguate @@ -1113,40 +1101,35 @@ public class ResolverActivity extends Activity { * * @return human-readable disambig string or null if none present */ - CharSequence getExtendedInfo(); + public CharSequence getExtendedInfo(); /** * @return The drawable that should be used to represent this target */ - Drawable getDisplayIcon(); + public Drawable getDisplayIcon(); /** * @return The (small) icon to badge the target with */ - Drawable getBadgeIcon(); + public Drawable getBadgeIcon(); /** * @return The content description for the badge icon */ - CharSequence getBadgeContentDescription(); + public CharSequence getBadgeContentDescription(); /** * Clone this target with the given fill-in information. */ - TargetInfo cloneFilledIn(Intent fillInIntent, int flags); + public TargetInfo cloneFilledIn(Intent fillInIntent, int flags); /** * @return the list of supported source intents deduped against this single target */ - List<Intent> getAllSourceIntents(); - - /** - * @return true if this target should be pinned to the front by the request of the user - */ - boolean isPinned(); + public List<Intent> getAllSourceIntents(); } - public class ResolveListAdapter extends BaseAdapter { + class ResolveListAdapter extends BaseAdapter { private final List<Intent> mIntents; private final Intent[] mInitialIntents; private final List<ResolveInfo> mBaseResolveList; @@ -1393,12 +1376,9 @@ public class ResolverActivity extends Activity { } } if (!found) { - final ComponentName name = new ComponentName( - newInfo.activityInfo.packageName, newInfo.activityInfo.name); - final ResolvedComponentInfo rci = new ResolvedComponentInfo(name, - intent, newInfo); - rci.setPinned(isComponentPinned(name)); - into.add(rci); + into.add(new ResolvedComponentInfo(new ComponentName( + newInfo.activityInfo.packageName, newInfo.activityInfo.name), + intent, newInfo)); } } } @@ -1474,8 +1454,6 @@ public class ResolverActivity extends Activity { final Intent replaceIntent = getReplacementIntent(add.activityInfo, intent); final DisplayResolveInfo dri = new DisplayResolveInfo(intent, add, roLabel, extraInfo, replaceIntent); - final ComponentInfo ci = add.getComponentInfo(); - dri.setPinned(rci.isPinned()); addResolveInfo(dri); if (replaceIntent == intent) { // Only add alternates if we didn't get a specific replacement from @@ -1559,11 +1537,11 @@ public class ResolverActivity extends Activity { return false; } - public int getDisplayResolveInfoCount() { + protected int getDisplayResolveInfoCount() { return mDisplayList.size(); } - public DisplayResolveInfo getDisplayResolveInfo(int index) { + protected DisplayResolveInfo getDisplayResolveInfo(int index) { // Used to query services. We only query services for primary targets, not alternates. return mDisplayList.get(index); } @@ -1593,10 +1571,6 @@ public class ResolverActivity extends Activity { return !TextUtils.isEmpty(info.getExtendedInfo()); } - public boolean isComponentPinned(ComponentName name) { - return false; - } - public final void bindView(int position, View view) { onBindView(view, getItem(position)); } @@ -1633,7 +1607,6 @@ public class ResolverActivity extends Activity { static final class ResolvedComponentInfo { public final ComponentName name; - private boolean mPinned; private final List<Intent> mIntents = new ArrayList<>(); private final List<ResolveInfo> mResolveInfos = new ArrayList<>(); @@ -1676,14 +1649,6 @@ public class ResolverActivity extends Activity { } return -1; } - - public boolean isPinned() { - return mPinned; - } - - public void setPinned(boolean pinned) { - mPinned = pinned; - } } static class ViewHolder { @@ -1737,7 +1702,7 @@ public class ResolverActivity extends Activity { return false; } ResolveInfo ri = mAdapter.resolveInfoForPosition(position, true); - showTargetDetails(ri); + showAppDetails(ri); return true; } diff --git a/core/java/com/android/internal/app/ResolverComparator.java b/core/java/com/android/internal/app/ResolverComparator.java index 964a7f53e357..31556e29bc32 100644 --- a/core/java/com/android/internal/app/ResolverComparator.java +++ b/core/java/com/android/internal/app/ResolverComparator.java @@ -48,7 +48,7 @@ class ResolverComparator implements Comparator<ResolvedComponentInfo> { private static final boolean DEBUG = false; // Two weeks - private static final long USAGE_STATS_PERIOD = 1000 * 60 * 60 * 24 * 7; + private static final long USAGE_STATS_PERIOD = 1000 * 60 * 60 * 24 * 14; private static final long RECENCY_TIME_PERIOD = 1000 * 60 * 60 * 12; @@ -171,27 +171,15 @@ class ResolverComparator implements Comparator<ResolvedComponentInfo> { } } - final boolean lPinned = lhsp.isPinned(); - final boolean rPinned = rhsp.isPinned(); + if (mStats != null) { + final ScoredTarget lhsTarget = mScoredTargets.get(new ComponentName( + lhs.activityInfo.packageName, lhs.activityInfo.name)); + final ScoredTarget rhsTarget = mScoredTargets.get(new ComponentName( + rhs.activityInfo.packageName, rhs.activityInfo.name)); + final float diff = rhsTarget.score - lhsTarget.score; - if (lPinned && !rPinned) { - return -1; - } else if (!lPinned && rPinned) { - return 1; - } - - // Pinned items stay stable within a normal lexical sort and ignore scoring. - if (!lPinned && !rPinned) { - if (mStats != null) { - final ScoredTarget lhsTarget = mScoredTargets.get(new ComponentName( - lhs.activityInfo.packageName, lhs.activityInfo.name)); - final ScoredTarget rhsTarget = mScoredTargets.get(new ComponentName( - rhs.activityInfo.packageName, rhs.activityInfo.name)); - final float diff = rhsTarget.score - lhsTarget.score; - - if (diff != 0) { - return diff > 0 ? 1 : -1; - } + if (diff != 0) { + return diff > 0 ? 1 : -1; } } diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 4ab81e990513..1c3db104dc3c 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -2887,6 +2887,19 @@ android:theme="@style/Theme.Material.DayNight.DarkActionBar" android:forceDeviceEncrypted="true" android:encryptionAware="true"> + <activity android:name="com.android.internal.app.ChooserActivity" + android:theme="@style/Theme.DeviceDefault.Resolver" + android:finishOnCloseSystemDialogs="true" + android:excludeFromRecents="true" + android:documentLaunchMode="never" + android:relinquishTaskIdentity="true" + android:process=":ui"> + <intent-filter> + <action android:name="android.intent.action.CHOOSER" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.VOICE" /> + </intent-filter> + </activity> <activity android:name="com.android.internal.app.IntentForwarderActivity" android:finishOnCloseSystemDialogs="true" android:theme="@style/Theme.NoDisplay" diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 52b7b7dfc128..21abb901cb9a 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -155,10 +155,6 @@ <!-- TV picture-in-picture --> <uses-permission android:name="android.permission.RECEIVE_MEDIA_RESOURCE_USAGE" /> - <!-- ChooserActivity --> - <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" /> - <uses-permission android:name="android.permission.BIND_CHOOSER_TARGET_SERVICE" /> - <application android:name=".SystemUIApplication" android:persistent="true" @@ -442,20 +438,5 @@ <action android:name="com.android.systemui.action.CLEAR_TUNER" /> </intent-filter> </receiver> - - <activity android:name=".chooser.ChooserActivity" - android:theme="@*android:style/Theme.DeviceDefault.Resolver" - android:finishOnCloseSystemDialogs="true" - android:excludeFromRecents="true" - android:documentLaunchMode="never" - android:relinquishTaskIdentity="true" - android:process=":chooser"> - <intent-filter> - <action android:name="android.intent.action.CHOOSER" /> - <category android:name="android.intent.category.DEFAULT" /> - <category android:name="android.intent.category.VOICE" /> - </intent-filter> - </activity> - </application> </manifest> diff --git a/packages/SystemUI/res/values/arrays.xml b/packages/SystemUI/res/values/arrays.xml index 32025e06e5b9..bf0cba22ab0c 100644 --- a/packages/SystemUI/res/values/arrays.xml +++ b/packages/SystemUI/res/values/arrays.xml @@ -51,16 +51,4 @@ <item>0</item><item>3</item> <item>3</item><item>3</item> </array> - - <!-- Used in ResolverTargetActionsDialogFragment --> - <string-array name="resolver_target_actions_pin"> - <item>@string/pin_target</item> - <item>@string/app_info</item> - </string-array> - - <string-array name="resolver_target_actions_unpin"> - <item>@string/unpin_target</item> - <item>@string/app_info</item> - </string-array> - </resources> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 78242910f280..32da3c62e1f4 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -1343,11 +1343,6 @@ <!-- Accessibility description for data saver being off [CHAR LIMIT=NONE] --> <string name="accessibility_data_saver_off">Data Saver is off</string> - <!-- Resolver target actions strings --> - <string name="pin_target">Pin</string> - <string name="unpin_target">Unpin</string> - <string name="app_info">App info</string> - <!-- Label for feature switch [CHAR LIMIT=30] --> <string name="switch_bar_on">On</string> diff --git a/packages/SystemUI/src/com/android/systemui/chooser/ResolverTargetActionsDialogFragment.java b/packages/SystemUI/src/com/android/systemui/chooser/ResolverTargetActionsDialogFragment.java deleted file mode 100644 index 839aa4556450..000000000000 --- a/packages/SystemUI/src/com/android/systemui/chooser/ResolverTargetActionsDialogFragment.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package com.android.systemui.chooser; - -import android.app.AlertDialog.Builder; -import android.app.Dialog; -import android.app.DialogFragment; -import android.content.ComponentName; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; -import android.net.Uri; -import android.os.Bundle; -import android.provider.Settings; - -import com.android.systemui.R; - -/** - * Shows a dialog with actions to take on a chooser target - */ -public class ResolverTargetActionsDialogFragment extends DialogFragment - implements DialogInterface.OnClickListener { - private static final String NAME_KEY = "componentName"; - private static final String PINNED_KEY = "pinned"; - private static final String TITLE_KEY = "title"; - - // Sync with R.array.resolver_target_actions_* resources - private static final int TOGGLE_PIN_INDEX = 0; - private static final int APP_INFO_INDEX = 1; - - public ResolverTargetActionsDialogFragment() { - } - - public ResolverTargetActionsDialogFragment(CharSequence title, ComponentName name, - boolean pinned) { - Bundle args = new Bundle(); - args.putCharSequence(TITLE_KEY, title); - args.putParcelable(NAME_KEY, name); - args.putBoolean(PINNED_KEY, pinned); - setArguments(args); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final Bundle args = getArguments(); - final int itemRes = args.getBoolean(PINNED_KEY, false) - ? R.array.resolver_target_actions_unpin - : R.array.resolver_target_actions_pin; - return new Builder(getContext()) - .setCancelable(true) - .setItems(itemRes, this) - .setTitle(args.getCharSequence(TITLE_KEY)) - .create(); - } - - @Override - public void onClick(DialogInterface dialog, int which) { - final Bundle args = getArguments(); - ComponentName name = args.getParcelable(NAME_KEY); - switch (which) { - case TOGGLE_PIN_INDEX: - SharedPreferences sp = ChooserActivity.getPinnedSharedPrefs(getContext()); - final String key = name.flattenToString(); - boolean currentVal = sp.getBoolean(name.flattenToString(), false); - if (currentVal) { - sp.edit().remove(key).apply(); - } else { - sp.edit().putBoolean(key, true).apply(); - } - - // Force the chooser to requery and resort things - getActivity().recreate(); - break; - case APP_INFO_INDEX: - Intent in = new Intent().setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - .setData(Uri.fromParts("package", name.getPackageName(), null)) - .addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); - startActivity(in); - break; - } - dismiss(); - } -} |