28 lines
1.3 KiB
Java
28 lines
1.3 KiB
Java
package androidx.core.app;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.core.content.IntentCompat;
|
|
public class AppLaunchChecker {
|
|
private static final String KEY_STARTED_FROM_LAUNCHER = "startedFromLauncher";
|
|
private static final String SHARED_PREFS_NAME = "android.support.AppLaunchChecker";
|
|
|
|
public static boolean hasStartedFromLauncher(@NonNull Context context) {
|
|
return context.getSharedPreferences(SHARED_PREFS_NAME, 0).getBoolean(KEY_STARTED_FROM_LAUNCHER, false);
|
|
}
|
|
|
|
public static void onActivityCreate(@NonNull Activity activity) {
|
|
Intent intent;
|
|
SharedPreferences sharedPreferences = activity.getSharedPreferences(SHARED_PREFS_NAME, 0);
|
|
if (sharedPreferences.getBoolean(KEY_STARTED_FROM_LAUNCHER, false) || (intent = activity.getIntent()) == null || !"android.intent.action.MAIN".equals(intent.getAction())) {
|
|
return;
|
|
}
|
|
if (intent.hasCategory("android.intent.category.LAUNCHER") || intent.hasCategory(IntentCompat.CATEGORY_LEANBACK_LAUNCHER)) {
|
|
sharedPreferences.edit().putBoolean(KEY_STARTED_FROM_LAUNCHER, true).apply();
|
|
}
|
|
}
|
|
}
|