瀏覽代碼

Clickable real apps

master
Chris Smith 14 年之前
父節點
當前提交
15c5893830

二進制
code/ContextHome/dist/ContextHome.apk 查看文件


+ 27
- 2
code/ContextHome/src/uk/co/md87/android/contexthome/modules/AppsModule.java 查看文件

@@ -22,7 +22,14 @@
22 22
 
23 23
 package uk.co.md87.android.contexthome.modules;
24 24
 
25
+import android.content.ComponentName;
25 26
 import android.content.Context;
27
+import android.content.Intent;
28
+import android.content.pm.ActivityInfo;
29
+import android.content.pm.PackageInfo;
30
+import android.content.pm.PackageManager;
31
+import android.content.pm.ResolveInfo;
32
+import android.util.Log;
26 33
 import android.view.View;
27 34
 import android.widget.ImageView;
28 35
 import android.widget.LinearLayout;
@@ -41,10 +48,28 @@ public class AppsModule implements Module {
41 48
     public View getView(final Context context, final int weight) {
42 49
         final View view = View.inflate(context, R.layout.scroller, null);
43 50
         final LinearLayout layout = (LinearLayout) view.findViewById(R.id.content);
51
+        final PackageManager pm = context.getPackageManager();
52
+        final Intent intent = new Intent(Intent.ACTION_MAIN);
53
+        final View.OnClickListener listener = new View.OnClickListener() {
44 54
 
45
-        for (int i = 0; i < 20; i++) {
55
+            public void onClick(View view) {
56
+                final ActivityInfo info = (ActivityInfo) view.getTag();
57
+                final Intent intent = new Intent();
58
+                intent.setAction(Intent.ACTION_MAIN);
59
+                intent.setClassName(info.packageName, info.name);
60
+                context.startActivity(intent);
61
+            }
62
+        };
63
+
64
+        intent.addCategory(Intent.CATEGORY_LAUNCHER);
65
+        
66
+        for (ResolveInfo res : pm.queryIntentActivities(intent, 0)) {
46 67
             final ImageView image = new ImageView(context);
47
-            image.setImageResource(R.drawable.blank);
68
+            image.setImageDrawable(res.activityInfo.loadIcon(pm));
69
+            image.setFocusable(true);
70
+            image.setClickable(true);
71
+            image.setTag(res.activityInfo);
72
+            image.setOnClickListener(listener);
48 73
             layout.addView(image, 48, 48);
49 74
         }
50 75
 

Loading…
取消
儲存