Allow system apps to add to settings dashboard
Allow system apps to add a tile to the top level of settings that links to an activity through adding a filter for a specific action. Determine the info for the tile based off manifest info for the activity. Also allow the same for managed profiles, but show a dialog in between to select which profile. The category in which the item is to be placed must be in meta-data. The icon and title can be specified through meta-data as well or if unspecified the activity's label and icon will be used. Also added an optional <external-tiles> tag to the dashboard category xml, this allows Settings to put external tiles in the middle of some categories (Personal does this). Bug: 19443117 Change-Id: Idc9938d1549d181103a3030a8784b527215a8399
This commit is contained in:
@@ -16,14 +16,16 @@
|
||||
|
||||
package com.android.settings.dashboard;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.settings.ProfileSelectDialog;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
|
||||
@@ -93,7 +95,14 @@ public class DashboardTileView extends FrameLayout implements View.OnClickListen
|
||||
Utils.startWithFragment(getContext(), mTile.fragment, mTile.fragmentArguments, null, 0,
|
||||
mTile.titleRes, mTile.getTitle(getResources()));
|
||||
} else if (mTile.intent != null) {
|
||||
getContext().startActivity(mTile.intent);
|
||||
int numUserHandles = mTile.userHandle.size();
|
||||
if (numUserHandles > 1) {
|
||||
ProfileSelectDialog.show(((Activity) getContext()).getFragmentManager(), mTile);
|
||||
} else if (numUserHandles == 1) {
|
||||
getContext().startActivityAsUser(mTile.intent, mTile.userHandle.get(0));
|
||||
} else {
|
||||
getContext().startActivity(mTile.intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user