Skip to content

Commit

Permalink
Merge pull request #13 from Danielku15/feature/android-tv
Browse files Browse the repository at this point in the history
Add support for Android TV apps
  • Loading branch information
alescdb committed Jul 9, 2020
2 parents 8354958 + 81084f0 commit 6de12b6
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 3 deletions.
14 changes: 13 additions & 1 deletion launcher/src/main/java/org/cosinus/launchertv/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,31 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.HashSet;

public class Utils {
public static List<AppInfo> loadApplications(Context context) {
PackageManager packageManager = context.getPackageManager();

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> intentActivities = packageManager.queryIntentActivities(mainIntent, 0);

mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LEANBACK_LAUNCHER);
intentActivities.addAll(packageManager.queryIntentActivities(mainIntent, 0));

Set<String> knownPackages = new HashSet<>();
List<AppInfo> entries = new ArrayList<>();

if (intentActivities != null) {
for (ResolveInfo resolveInfo : intentActivities) {
if (!context.getPackageName().equals(resolveInfo.activityInfo.packageName))
if (!context.getPackageName().equals(resolveInfo.activityInfo.packageName) &&
!knownPackages.contains(resolveInfo.activityInfo.packageName)) {
entries.add(new AppInfo(packageManager, resolveInfo));
knownPackages.add(resolveInfo.activityInfo.packageName);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,15 +331,15 @@ private void openApplication(ApplicationView v) {

try {
Toast.makeText(getActivity(), v.getName(), Toast.LENGTH_SHORT).show();
startActivity(getActivity().getPackageManager().getLaunchIntentForPackage(v.getPackageName()));
startActivity(getLaunchIntentForPackage(v.getPackageName()));
} catch (Exception e) {
Toast.makeText(getActivity(), v.getName() + " : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}

private void openApplication(String packageName) {
try {
Intent startApp = getActivity().getPackageManager().getLaunchIntentForPackage(packageName);
Intent startApp = getLaunchIntentForPackage(packageName);
Toast.makeText(getActivity(), packageName, Toast.LENGTH_SHORT).show();
startActivity(startApp);
} catch (Exception e) {
Expand All @@ -354,6 +354,17 @@ private void openApplicationList(int viewType, int appNum, boolean showDelete, i
intent.putExtra(ApplicationList.SHOW_DELETE, showDelete);
startActivityForResult(intent, requestCode);
}

private Intent getLaunchIntentForPackage(String packageName) {
PackageManager pm = getActivity().getPackageManager();
Intent launchIntent = pm.getLaunchIntentForPackage(packageName);

if(launchIntent == null) {
launchIntent = pm.getLeanbackLaunchIntentForPackage(packageName);
}

return launchIntent;
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
Expand Down

0 comments on commit 6de12b6

Please sign in to comment.