Merge "Button that goes from app info details to app info" into mnc-dev

This commit is contained in:
Jason Monk
2015-05-08 19:47:27 +00:00
committed by Android (Google) Code Review
10 changed files with 87 additions and 7 deletions

View File

@@ -16,13 +16,19 @@
package com.android.settings.applications;
import android.app.Fragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import com.android.settings.AppHeader;
public abstract class AppInfoWithHeader extends AppInfoBase {
public static final String EXTRA_HIDE_INFO_BUTTON = "hideInfoButton";
private boolean mCreated;
@Override
@@ -35,6 +41,24 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
mCreated = true;
if (mPackageInfo == null) return;
AppHeader.createAppHeader(this, mPackageInfo.applicationInfo.loadIcon(mPm),
mPackageInfo.applicationInfo.loadLabel(mPm), null, 0);
mPackageInfo.applicationInfo.loadLabel(mPm), getInfoIntent(this, mPackageName), 0);
}
public static Intent getInfoIntent(Fragment fragment, String packageName) {
Bundle args = fragment.getArguments();
Intent intent = fragment.getActivity().getIntent();
boolean showInfo = true;
if (args != null && args.getBoolean(EXTRA_HIDE_INFO_BUTTON, false)) {
showInfo = false;
}
if (intent != null && intent.getBooleanExtra(EXTRA_HIDE_INFO_BUTTON, false)) {
showInfo = false;
}
Intent infoIntent = null;
if (showInfo) {
infoIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
infoIntent.setData(Uri.fromParts("package", packageName, null));
}
return infoIntent;
}
}

View File

@@ -618,6 +618,7 @@ public class InstalledAppDetails extends AppInfoBase
// start new activity to manage app permissions
Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSIONS);
intent.putExtra(Intent.EXTRA_PACKAGE_NAME, mAppEntry.info.packageName);
intent.putExtra(AppInfoWithHeader.EXTRA_HIDE_INFO_BUTTON, true);
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
@@ -629,6 +630,7 @@ public class InstalledAppDetails extends AppInfoBase
// start new fragment to display extended information
Bundle args = new Bundle();
args.putString(InstalledAppDetails.ARG_PACKAGE_NAME, mAppEntry.info.packageName);
args.putBoolean(AppInfoWithHeader.EXTRA_HIDE_INFO_BUTTON, true);
SettingsActivity sa = (SettingsActivity) getActivity();
sa.startPreferencePanel(fragment.getName(), args, -1, title, this, SUB_INFO_FRAGMENT);
@@ -638,6 +640,7 @@ public class InstalledAppDetails extends AppInfoBase
// start new fragment to display extended information
getActivity().startActivity(new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.putExtra(AppInfoWithHeader.EXTRA_HIDE_INFO_BUTTON, true)
.putExtra(Settings.EXTRA_APP_PACKAGE, mAppEntry.info.packageName)
.putExtra(Settings.EXTRA_APP_UID, mAppEntry.info.uid));
}

View File

@@ -428,10 +428,11 @@ public class ManageApplications extends InstrumentedFragment
Activity activity = getActivity();
switch (mListType) {
case LIST_TYPE_NOTIFICATION:
activity.startActivity(new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
activity.startActivityAsUser(new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.putExtra(Settings.EXTRA_APP_PACKAGE, mCurrentPkgName)
.putExtra(Settings.EXTRA_APP_UID, mCurrentUid));
.putExtra(Settings.EXTRA_APP_UID, mCurrentUid),
new UserHandle(UserHandle.getUserId(mCurrentUid)));
break;
case LIST_TYPE_DOMAINS_URLS:
startAppInfoFragment(AppLaunchSettings.class, R.string.auto_launch_label);

View File

@@ -115,7 +115,7 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment
AppHeader.createAppHeader(this,
mApp.mUiTargetApp != null ? mApp.mUiTargetApp.loadIcon(mPm) : new ColorDrawable(0),
mApp.mUiLabel, null);
mApp.mUiLabel, AppInfoWithHeader.getInfoIntent(this, mApp.mPackage));
}
@Override