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

Commit 35bed6fd authored by Adam Powell's avatar Adam Powell Committed by Android Git Automerger
Browse files

am 920c27b2: am 4cd577f0: Merge "Make work profile apps easier to pick in...

am 920c27b2: am 4cd577f0: Merge "Make work profile apps easier to pick in ResolverActivity" into lmp-mr1-dev

* commit '920c27b2':
  Make work profile apps easier to pick in ResolverActivity
parents db6753cf 920c27b2
Loading
Loading
Loading
Loading
+80 −20
Original line number Diff line number Diff line
@@ -95,12 +95,14 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
    private ListView mListView;
    private Button mAlwaysButton;
    private Button mOnceButton;
    private View mProfileView;
    private int mIconDpi;
    private int mIconSize;
    private int mMaxColumns;
    private int mLastSelected = ListView.INVALID_POSITION;
    private boolean mResolvingHome = false;
    private int mProfileSwitchMessageId = -1;
    private Intent mIntent;

    private UsageStatsManager mUsm;
    private Map<String, UsageStats> mStats;
@@ -110,6 +112,9 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
    private final PackageMonitor mPackageMonitor = new PackageMonitor() {
        @Override public void onSomePackagesChanged() {
            mAdapter.handlePackagesChanged();
            if (mProfileView != null) {
                bindProfileView();
            }
        }
    };

@@ -217,7 +222,6 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic

        final long sinceTime = System.currentTimeMillis() - USAGE_STATS_PERIOD;
        mStats = mUsm.queryAndAggregateUsageStats(sinceTime, System.currentTimeMillis());
        Log.d(TAG, "sinceTime=" + sinceTime);

        mMaxColumns = getResources().getInteger(R.integer.config_maxResolverActivityColumns);

@@ -228,7 +232,8 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
        mIconDpi = am.getLauncherLargeIconDensity();
        mIconSize = am.getLauncherLargeIconSize();

        mAdapter = new ResolveListAdapter(this, intent, initialIntents, rList,
        mIntent = new Intent(intent);
        mAdapter = new ResolveListAdapter(this, initialIntents, rList,
                mLaunchedFromUid, alwaysUseOption);

        final int layoutId;
@@ -324,6 +329,40 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
            setAlwaysButtonEnabled(true, mAdapter.getFilteredPosition(), false);
            mOnceButton.setEnabled(true);
        }

        mProfileView = findViewById(R.id.profile_button);
        if (mProfileView != null) {
            mProfileView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final DisplayResolveInfo dri = mAdapter.getOtherProfile();
                    if (dri == null) {
                        return;
                    }

                    final Intent intent = intentForDisplayResolveInfo(dri);
                    onIntentSelected(dri.ri, intent, mAlwaysUseOption);
                    finish();
                }
            });
            bindProfileView();
        }
    }

    void bindProfileView() {
        final DisplayResolveInfo dri = mAdapter.getOtherProfile();
        if (dri != null) {
            mProfileView.setVisibility(View.VISIBLE);
            final ImageView icon = (ImageView) mProfileView.findViewById(R.id.icon);
            final TextView text = (TextView) mProfileView.findViewById(R.id.text1);
            if (dri.displayIcon == null) {
                new LoadIconTask().execute(dri);
            }
            icon.setImageDrawable(dri.displayIcon);
            text.setText(dri.displayLabel);
        } else {
            mProfileView.setVisibility(View.GONE);
        }
    }

    private void setProfileSwitchMessageId(int contentUserHint) {
@@ -416,6 +455,9 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
            mRegistered = true;
        }
        mAdapter.handlePackagesChanged();
        if (mProfileView != null) {
            bindProfileView();
        }
    }

    @Override
@@ -702,6 +744,17 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
        startActivity(in);
    }

    Intent intentForDisplayResolveInfo(DisplayResolveInfo dri) {
        Intent intent = new Intent(dri.origIntent != null ? dri.origIntent :
                getReplacementIntent(dri.ri.activityInfo, mIntent));
        intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT
                |Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
        ActivityInfo ai = dri.ri.activityInfo;
        intent.setComponent(new ComponentName(
                ai.applicationInfo.packageName, ai.name));
        return intent;
    }

    private final class DisplayResolveInfo {
        ResolveInfo ri;
        CharSequence displayLabel;
@@ -722,7 +775,7 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
        private final Intent[] mInitialIntents;
        private final List<ResolveInfo> mBaseResolveList;
        private ResolveInfo mLastChosen;
        private final Intent mIntent;
        private DisplayResolveInfo mOtherProfile;
        private final int mLaunchedFromUid;
        private final LayoutInflater mInflater;

@@ -732,10 +785,8 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
        private int mLastChosenPosition = -1;
        private boolean mFilterLastUsed;

        public ResolveListAdapter(Context context, Intent intent,
                Intent[] initialIntents, List<ResolveInfo> rList, int launchedFromUid,
                boolean filterLastUsed) {
            mIntent = new Intent(intent);
        public ResolveListAdapter(Context context, Intent[] initialIntents,
                List<ResolveInfo> rList, int launchedFromUid, boolean filterLastUsed) {
            mInitialIntents = initialIntents;
            mBaseResolveList = rList;
            mLaunchedFromUid = launchedFromUid;
@@ -764,6 +815,10 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
            return null;
        }

        public DisplayResolveInfo getOtherProfile() {
            return mOtherProfile;
        }

        public int getFilteredPosition() {
            if (mFilterLastUsed && mLastChosenPosition >= 0) {
                return mLastChosenPosition;
@@ -870,7 +925,7 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
                            ri.nonLocalizedLabel = li.getNonLocalizedLabel();
                            ri.icon = li.getIconResource();
                        }
                        mList.add(new DisplayResolveInfo(ri,
                        addResolveInfo(new DisplayResolveInfo(ri,
                                ri.loadLabel(getPackageManager()), null, ii));
                    }
                }
@@ -915,7 +970,7 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
                    mLastChosenPosition = mList.size();
                }
                // No duplicate labels. Use label for entry at start
                mList.add(new DisplayResolveInfo(ro, roLabel, null, null));
                addResolveInfo(new DisplayResolveInfo(ro, roLabel, null, null));
            } else {
                mShowExtended = true;
                boolean usePkg = false;
@@ -951,32 +1006,34 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic
                    }
                    if (usePkg) {
                        // Use application name for all entries from start to end-1
                        mList.add(new DisplayResolveInfo(add, roLabel,
                        addResolveInfo(new DisplayResolveInfo(add, roLabel,
                                add.activityInfo.packageName, null));
                    } else {
                        // Use package name for all entries from start to end-1
                        mList.add(new DisplayResolveInfo(add, roLabel,
                        addResolveInfo(new DisplayResolveInfo(add, roLabel,
                                add.activityInfo.applicationInfo.loadLabel(mPm), null));
                    }
                }
            }
        }

        private void addResolveInfo(DisplayResolveInfo dri) {
            if (dri.ri.targetUserId != UserHandle.USER_CURRENT && mOtherProfile == null) {
                // So far we only support a single other profile at a time.
                // The first one we see gets special treatment.
                mOtherProfile = dri;
            } else {
                mList.add(dri);
            }
        }

        public ResolveInfo resolveInfoForPosition(int position, boolean filtered) {
            return (filtered ? getItem(position) : mList.get(position)).ri;
        }

        public Intent intentForPosition(int position, boolean filtered) {
            DisplayResolveInfo dri = filtered ? getItem(position) : mList.get(position);

            Intent intent = new Intent(dri.origIntent != null ? dri.origIntent :
                    getReplacementIntent(dri.ri.activityInfo, mIntent));
            intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT
                    |Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
            ActivityInfo ai = dri.ri.activityInfo;
            intent.setComponent(new ComponentName(
                    ai.applicationInfo.packageName, ai.name));
            return intent;
            return intentForDisplayResolveInfo(dri);
        }

        public int getCount() {
@@ -1067,6 +1124,9 @@ public class ResolverActivity extends Activity implements AdapterView.OnItemClic

        @Override
        protected void onPostExecute(DisplayResolveInfo info) {
            if (mProfileView != null && mAdapter.getOtherProfile() == info) {
                bindProfileView();
            }
            mAdapter.notifyDataSetChanged();
        }
    }
+0 −1
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@
               android:layout_height="24dp"
               android:layout_gravity="start|center_vertical"
               android:layout_marginStart="?attr/listPreferredItemPaddingStart"
               android:layout_marginEnd="?attr/listPreferredItemPaddingEnd"
               android:layout_marginTop="12dp"
               android:layout_marginBottom="12dp"
               android:scaleType="fitCenter" />
+50 −13
Original line number Diff line number Diff line
@@ -25,19 +25,56 @@
    android:maxCollapsedHeightSmall="56dp"
    android:id="@id/contentPanel">

    <TextView android:id="@+id/title"
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alwaysShow="true"
        android:elevation="8dp"
        android:background="@color/white" >
        <TextView android:id="@+id/title"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:minHeight="56dp"
                  android:textAppearance="?attr/textAppearanceMedium"
                  android:gravity="start|center_vertical"
                  android:paddingStart="?attr/dialogPreferredPadding"
                  android:paddingEnd="?attr/dialogPreferredPadding"
                  android:paddingTop="8dp"
              android:paddingBottom="8dp"
              android:background="@color/white"
              android:elevation="8dp" />
                  android:paddingBottom="8dp" />
        <LinearLayout android:id="@+id/profile_button"
                      android:layout_width="wrap_content"
                      android:layout_height="48dp"
                      android:layout_marginTop="4dp"
                      android:layout_marginEnd="4dp"
                      android:paddingStart="8dp"
                      android:paddingEnd="8dp"
                      android:paddingTop="4dp"
                      android:paddingBottom="4dp"
                      android:focusable="true"
                      android:visibility="gone"
                      style="?attr/borderlessButtonStyle">
            <ImageView android:id="@+id/icon"
                       android:layout_width="24dp"
                       android:layout_height="24dp"
                       android:layout_gravity="start|center_vertical"
                       android:layout_marginStart="4dp"
                       android:layout_marginEnd="16dp"
                       android:layout_marginTop="12dp"
                       android:layout_marginBottom="12dp"
                       android:scaleType="fitCenter" />
            <TextView android:id="@id/text1"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_gravity="start|center_vertical"
                      android:layout_marginEnd="16dp"
                      android:textAppearance="?attr/textAppearanceButton"
                      android:textColor="?attr/textColorPrimary"
                      android:minLines="1"
                      android:maxLines="1"
                      android:ellipsize="marquee" />
        </LinearLayout>
    </LinearLayout>

    <ListView
        android:layout_width="match_parent"
+34 −6
Original line number Diff line number Diff line
@@ -36,8 +36,7 @@
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="64dp"
            android:orientation="horizontal"
            >
            android:orientation="horizontal" >

            <ImageView android:id="@+id/icon"
                       android:layout_width="24dp"
@@ -46,8 +45,7 @@
                       android:layout_marginStart="16dp"
                       android:layout_marginEnd="16dp"
                       android:layout_marginTop="20dp"
                       android:scaleType="fitCenter"
                       />
                       android:scaleType="fitCenter" />
            <TextView android:id="@+id/title"
                      android:layout_width="0dp"
                      android:layout_weight="1"
@@ -55,8 +53,38 @@
                      android:layout_marginStart="16dp"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:gravity="start|center_vertical"
                      android:paddingEnd="16dp"
                      />
                      android:paddingEnd="16dp" />
            <LinearLayout android:id="@+id/profile_button"
                          android:layout_width="wrap_content"
                          android:layout_height="48dp"
                          android:layout_marginTop="4dp"
                          android:layout_marginEnd="4dp"
                          android:paddingStart="8dp"
                          android:paddingEnd="8dp"
                          android:paddingTop="4dp"
                          android:paddingBottom="4dp"
                          android:focusable="true"
                          android:visibility="gone"
                          style="?attr/borderlessButtonStyle">
                <ImageView android:id="@+id/icon"
                           android:layout_width="24dp"
                           android:layout_height="24dp"
                           android:layout_gravity="start|center_vertical"
                           android:layout_marginEnd="?attr/listPreferredItemPaddingEnd"
                           android:layout_marginTop="12dp"
                           android:layout_marginBottom="12dp"
                           android:scaleType="fitCenter" />
                <TextView android:id="@id/text1"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:layout_gravity="start|center_vertical"
                          android:layout_marginEnd="?attr/listPreferredItemPaddingEnd"
                          android:textAppearance="?attr/textAppearanceButton"
                          android:textColor="?attr/textColorPrimary"
                          android:minLines="1"
                          android:maxLines="1"
                          android:ellipsize="marquee" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
+1 −0
Original line number Diff line number Diff line
@@ -2129,6 +2129,7 @@
  <java-symbol type="id" name="scrollIndicatorDown" />
  <java-symbol type="array" name="config_sms_convert_destination_number_support" />
  <java-symbol type="string" name="prohibit_manual_network_selection_in_gobal_mode" />
  <java-symbol type="id" name="profile_button" />

  <!-- From SignalStrength -->
  <java-symbol type="integer" name="config_LTE_RSRP_threshold_type" />
Loading