OSDN Git Service

b69edd75b271a5c0980210a04de6cb7b9f366153
[android-x86/packages-apps-Taskbar.git] / app / src / nonlib / java / com / farmerbb / taskbar / activity / PersistentShortcutLaunchActivity.java
1 package com.farmerbb.taskbar.activity;
2
3 import android.app.Activity;
4 import android.content.ActivityNotFoundException;
5 import android.content.Intent;
6 import android.net.Uri;
7 import android.os.Bundle;
8
9 import com.farmerbb.taskbar.R;
10 import com.farmerbb.taskbar.util.AppEntry;
11 import com.farmerbb.taskbar.util.ApplicationType;
12 import com.farmerbb.taskbar.util.U;
13
14 public class PersistentShortcutLaunchActivity extends Activity {
15
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19
20         String packageName = getIntent().getStringExtra("package_name");
21         String componentName = getIntent().getStringExtra("component_name");
22         String windowSize = getIntent().getStringExtra("window_size");
23
24         if(!U.canDrawOverlays(this) && windowSize != null) {
25             Intent intent = new Intent(this, DummyActivity.class);
26             intent.putExtra("show_permission_dialog", true);
27             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
28
29             startActivity(intent);
30         } else if(packageName != null && componentName != null) {
31             final AppEntry entry = new AppEntry(packageName, componentName, null, null, false);
32
33             U.launchApp(this, entry, windowSize, () -> {
34                 Intent intent = new Intent(Intent.ACTION_VIEW);
35                 intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=" + packageName));
36
37                 try {
38                     startActivity(intent, U.getActivityOptionsBundle(this, ApplicationType.APP_PORTRAIT, null));
39                 } catch (ActivityNotFoundException | IllegalArgumentException e1) { /* Gracefully fail */ }
40             });
41         } else
42             U.showToast(this, R.string.tb_invalid_shortcut);
43
44         finish();
45     }
46 }