Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 330c6be9 authored by Svetoslav's avatar Svetoslav Committed by Android Git Automerger
Browse files

am 86bfb3af: Merge "Not show share targets that cannot be launched." into klp-dev

* commit '86bfb3af':
  Not show share targets that cannot be launched.
parents 160e8aa6 86bfb3af
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -16,9 +16,12 @@

package android.widget;

import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.DataSetObservable;
import android.os.AsyncTask;
@@ -708,8 +711,13 @@ public class ActivityChooserModel extends DataSetObservable {
            final int resolveInfoCount = resolveInfos.size();
            for (int i = 0; i < resolveInfoCount; i++) {
                ResolveInfo resolveInfo = resolveInfos.get(i);
                ActivityInfo activityInfo = resolveInfo.activityInfo;
                if (ActivityManager.checkComponentPermission(activityInfo.permission,
                        android.os.Process.myUid(), activityInfo.applicationInfo.uid,
                        activityInfo.exported) == PackageManager.PERMISSION_GRANTED) {
                    mActivities.add(new ActivityResolveInfo(resolveInfo));
                }
            }
            return true;
        }
        return false;
+21 −8
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.widget;

import com.android.internal.R;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -27,6 +28,7 @@ import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.ActionProvider;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -63,6 +65,8 @@ import android.widget.ListPopupWindow.ForwardingListener;
 */
public class ActivityChooserView extends ViewGroup implements ActivityChooserModelClient {

    private static final String LOG_TAG = "ActivityChooserView";

    /**
     * An adapter for displaying the activities in an {@link AdapterView}.
     */
@@ -543,9 +547,9 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
        }
        // Activity chooser content.
        if (mDefaultActivityButton.getVisibility() == VISIBLE) {
            mActivityChooserContent.setBackgroundDrawable(mActivityChooserContentBackground);
            mActivityChooserContent.setBackground(mActivityChooserContentBackground);
        } else {
            mActivityChooserContent.setBackgroundDrawable(null);
            mActivityChooserContent.setBackground(null);
        }
    }

@@ -577,7 +581,8 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
                        Intent launchIntent = mAdapter.getDataModel().chooseActivity(position);
                        if (launchIntent != null) {
                            launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                            mContext.startActivity(launchIntent);
                            ResolveInfo resolveInfo = mAdapter.getDataModel().getActivity(position);
                            startActivity(launchIntent, resolveInfo);
                        }
                    }
                } break;
@@ -595,7 +600,7 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
                Intent launchIntent = mAdapter.getDataModel().chooseActivity(index);
                if (launchIntent != null) {
                    launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                    mContext.startActivity(launchIntent);
                    startActivity(launchIntent, defaultActivity);
                }
            } else if (view == mExpandActivityOverflowButton) {
                mIsSelectingDefaultActivity = false;
@@ -632,6 +637,18 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
                mOnDismissListener.onDismiss();
            }
        }

        private void startActivity(Intent intent, ResolveInfo resolveInfo) {
            try {
                mContext.startActivity(intent);
            } catch (RuntimeException re) {
                CharSequence appLabel = resolveInfo.loadLabel(mContext.getPackageManager());
                String message = mContext.getString(
                        R.string.activitychooserview_choose_application_error, appLabel);
                Log.e(LOG_TAG, message);
                Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
            }
        }
    }

    /**
@@ -805,10 +822,6 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
            return mDataModel.getHistorySize();
        }

        public int getMaxActivityCount() {
            return mMaxActivityCount;
        }

        public ActivityChooserModel getDataModel() {
            return mDataModel;
        }
+3 −0
Original line number Diff line number Diff line
@@ -3901,6 +3901,9 @@
    <!-- Description of the shwoing of a popup window with activities to choose from. [CHAR LIMIT=NONE] -->
    <string name="activitychooserview_choose_application">Choose an app</string>

    <!-- Error message if the share target app cannto be launched. [CHAR LIMIT=NONE] -->
    <string name="activitychooserview_choose_application_error">Couldn\'t launch <xliff:g id="application_name" example="Acme">%s</xliff:g></string>

    <!-- ShareActionProvider - accessibility support -->
    <!-- Description of the choose target button in a ShareActionProvider (share UI). [CHAR LIMIT=NONE] -->
    <string name="shareactionprovider_share_with">Share with</string>
+1 −0
Original line number Diff line number Diff line
@@ -392,6 +392,7 @@
  <java-symbol type="string" name="accessibility_enabled" />
  <java-symbol type="string" name="activity_chooser_view_see_all" />
  <java-symbol type="string" name="activitychooserview_choose_application" />
  <java-symbol type="string" name="activitychooserview_choose_application_error" />
  <java-symbol type="string" name="alternate_eri_file" />
  <java-symbol type="string" name="alwaysUse" />
  <java-symbol type="string" name="autofill_address_line_1_label_re" />