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:
Jason Monk
2015-02-13 15:23:19 -05:00
parent 5528d8952b
commit 2ebc8a0169
14 changed files with 328 additions and 37 deletions

View File

@@ -52,13 +52,15 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.TextView;
import com.android.internal.content.PackageMonitor;
import com.android.settings.UserSpinnerAdapter;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.UserAdapter;
import com.android.settings.Utils;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
@@ -68,9 +70,6 @@ import java.text.DateFormat;
import java.util.ArrayList;
import java.util.List;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
/**
* Fragment with the top level print settings.
*/
@@ -120,7 +119,7 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment
private PreferenceCategory mPrintServicesCategory;
private PrintJobsController mPrintJobsController;
private UserSpinnerAdapter mProfileSpinnerAdapter;
private UserAdapter mProfileSpinnerAdapter;
private Spinner mSpinner;
@Override