Deprecate SettingsDrawerActivity.openTile.
Use DashboardFeatureProvider to open tile instead. This makes logic more centralized in one place, and makes logging easier in the future. Bug: 30137094 Test: RunSettingsRoboTests Change-Id: I8a028bb7cac8f70f6c237f253be8668cc3ef257e
This commit is contained in:
@@ -21,6 +21,7 @@ import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
@@ -30,6 +31,7 @@ import com.android.settings.SettingsActivity;
|
||||
import com.android.settingslib.drawer.CategoryManager;
|
||||
import com.android.settingslib.drawer.DashboardCategory;
|
||||
import com.android.settingslib.drawer.ProfileSelectDialog;
|
||||
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
||||
import com.android.settingslib.drawer.Tile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -149,14 +151,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
intent.setAction(action);
|
||||
}
|
||||
pref.setOnPreferenceClickListener(preference -> {
|
||||
ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile);
|
||||
if (tile.userHandle == null) {
|
||||
activity.startActivityForResult(intent, 0);
|
||||
} else if (tile.userHandle.size() == 1) {
|
||||
activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0));
|
||||
} else {
|
||||
ProfileSelectDialog.show(activity.getFragmentManager(), tile);
|
||||
}
|
||||
launchIntentOrSelectProfile(activity, tile, intent);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
@@ -188,4 +183,33 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
public String getExtraIntentAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openTileIntent(Activity activity, Tile tile) {
|
||||
if (tile == null) {
|
||||
Intent intent = new Intent(Settings.ACTION_SETTINGS).addFlags(
|
||||
Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
mContext.startActivity(intent);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tile.intent == null) {
|
||||
return;
|
||||
}
|
||||
final Intent intent = new Intent(tile.intent)
|
||||
.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
launchIntentOrSelectProfile(activity, tile, intent);
|
||||
}
|
||||
|
||||
private void launchIntentOrSelectProfile(Activity activity, Tile tile, Intent intent) {
|
||||
ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile);
|
||||
if (tile.userHandle == null) {
|
||||
activity.startActivityForResult(intent, 0);
|
||||
} else if (tile.userHandle.size() == 1) {
|
||||
activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0));
|
||||
} else {
|
||||
ProfileSelectDialog.show(activity.getFragmentManager(), tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user