Suppress NewDeviceIntroSuggestionActivity if Tips application exists
NewDeviceIntroSuggestionActivity should not show if Tips application exists. Bug: 77652536 Test: atest SettingsRoboTests Change-Id: I0aa19a5bc79c8b1497f42372d293299509d897b2 Merged-In: I85575e8eb92a8a620f0af9e5ad3ebd5b8dd05323
This commit is contained in:
@@ -20,9 +20,12 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.DateUtils;
|
||||
@@ -47,6 +50,8 @@ public class NewDeviceIntroSuggestionActivity extends Activity {
|
||||
@VisibleForTesting
|
||||
static final long PERMANENT_DISMISS_THRESHOLD = DateUtils.DAY_IN_MILLIS * 14;
|
||||
|
||||
public static final String TIPS_PACKAGE_NAME = "com.google.android.apps.tips";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -62,7 +67,9 @@ public class NewDeviceIntroSuggestionActivity extends Activity {
|
||||
}
|
||||
|
||||
public static boolean isSuggestionComplete(Context context) {
|
||||
return !isSupported(context)
|
||||
// Always returns 'true' if Tips application exists. Check b/77652536 for more details.
|
||||
return isTipsInstalledAsSystemApp(context)
|
||||
|| !isSupported(context)
|
||||
|| isExpired(context)
|
||||
|| hasLaunchedBefore(context)
|
||||
|| !canOpenUrlInBrowser(context);
|
||||
@@ -130,4 +137,18 @@ public class NewDeviceIntroSuggestionActivity extends Activity {
|
||||
.addCategory(Intent.CATEGORY_BROWSABLE)
|
||||
.setData(Uri.parse(url));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the specified package exists and is marked with <i>FLAG_SYSTEM</i>
|
||||
*/
|
||||
private static boolean isTipsInstalledAsSystemApp(@NonNull Context context) {
|
||||
try {
|
||||
final PackageInfo info = context.getPackageManager().getPackageInfo(TIPS_PACKAGE_NAME,
|
||||
PackageManager.MATCH_SYSTEM_ONLY);
|
||||
return info != null;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.w(TAG, "Cannot find the package: " + TIPS_PACKAGE_NAME, e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user