OSDN Git Service

wip list contnet
authorKoushik Dutta <koushd@gmail.com>
Thu, 21 Feb 2013 00:33:28 +0000 (16:33 -0800)
committerKoushik Dutta <koushd@gmail.com>
Thu, 21 Feb 2013 00:33:28 +0000 (16:33 -0800)
18 files changed:
Widgets/gen/com/koushikdutta/widgets/R.java
Widgets/res/layout-large/list_content.xml [new file with mode: 0644]
Widgets/res/layout-v14/list_item.xml [deleted file]
Widgets/res/layout-v14/list_item_base.xml [moved from Widgets/res/layout-v14/list_item_small.xml with 80% similarity]
Widgets/res/layout/list_content.xml [new file with mode: 0644]
Widgets/res/layout/list_fragment.xml [moved from Widgets/res/layout/activity_base_fragment.xml with 93% similarity]
Widgets/res/layout/list_item.xml
Widgets/res/layout/list_item_base.xml [moved from Widgets/res/layout/list_item_small.xml with 83% similarity]
Widgets/res/layout/list_item_selectable.xml [new file with mode: 0644]
Widgets/src/com/koushikdutta/widgets/ActivityBase.java
Widgets/src/com/koushikdutta/widgets/ActivityBaseFragment.java
Widgets/src/com/koushikdutta/widgets/ListContentActivity.java [new file with mode: 0644]
Widgets/src/com/koushikdutta/widgets/app_layout.xml [new file with mode: 0644]
WidgetsSample/AndroidManifest.xml
WidgetsSample/gen/com/koushikdutta/widgets/R.java
WidgetsSample/gen/com/koushikdutta/widgets/sample/R.java
WidgetsSample/src/com/koushikdutta/widgets/sample/ListContentTest.java [new file with mode: 0644]
WidgetsSample/src/com/koushikdutta/widgets/sample/MainActivity.java

index a620313..544db34 100644 (file)
@@ -16,20 +16,24 @@ public final class R {
         public static int holo_blue_light=0x7f030000;
     }
     public static final class id {
-        public static int checkbox=0x7f040008;
-        public static int empty=0x7f040002;
-        public static int footer_container=0x7f040003;
-        public static int image=0x7f040005;
-        public static int list_header_title=0x7f040004;
-        public static int listview=0x7f040001;
-        public static int summary=0x7f040007;
-        public static int title=0x7f040006;
-        public static int title_container=0x7f040000;
+        public static int checkbox=0x7f04000a;
+        public static int content=0x7f040001;
+        public static int empty=0x7f040004;
+        public static int footer_container=0x7f040005;
+        public static int image=0x7f040007;
+        public static int list=0x7f040000;
+        public static int list_header_title=0x7f040006;
+        public static int listview=0x7f040003;
+        public static int summary=0x7f040009;
+        public static int title=0x7f040008;
+        public static int title_container=0x7f040002;
     }
     public static final class layout {
-        public static int activity_base_fragment=0x7f020000;
-        public static int list_header=0x7f020001;
-        public static int list_item=0x7f020002;
-        public static int list_item_small=0x7f020003;
+        public static int list_content=0x7f020000;
+        public static int list_fragment=0x7f020001;
+        public static int list_header=0x7f020002;
+        public static int list_item=0x7f020003;
+        public static int list_item_base=0x7f020004;
+        public static int list_item_selectable=0x7f020005;
     }
 }
diff --git a/Widgets/res/layout-large/list_content.xml b/Widgets/res/layout-large/list_content.xml
new file mode 100644 (file)
index 0000000..31c0644
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="horizontal" >
+
+    <ListView
+        android:id="@+id/list"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:orientation="vertical" />
+
+    <LinearLayout
+        android:id="@+id/content"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/Widgets/res/layout-v14/list_item.xml b/Widgets/res/layout-v14/list_item.xml
deleted file mode 100644 (file)
index d7a192a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="64dp"
-    android:orientation="horizontal" >
-
-    <ImageView
-        android:id="@+id/image"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
-        android:layout_gravity="center_vertical"
-        android:layout_margin="2dp"
-        android:scaleType="fitCenter" >
-    </ImageView>
-
-    <LinearLayout
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:paddingLeft="4dp" >
-
-        <TextView
-            android:id="@+id/title"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="2dp"
-            android:layout_marginRight="2dp"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
-
-        <TextView
-            android:id="@+id/summary"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="2dp"
-            android:layout_marginRight="2dp"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
-    </LinearLayout>
-
-    <Switch
-        android:id="@+id/checkbox"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:layout_marginLeft="2dp"
-        android:layout_marginRight="2dp"
-        android:focusable="false"
-        android:focusableInTouchMode="false" />
-
-</LinearLayout>
\ No newline at end of file
similarity index 80%
rename from Widgets/res/layout-v14/list_item_small.xml
rename to Widgets/res/layout-v14/list_item_base.xml
index a6861f8..1eadb69 100644 (file)
@@ -15,7 +15,7 @@
     </ImageView>
 
     <LinearLayout
-        android:layout_width="fill_parent"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_weight="1"
 
         <TextView
             android:id="@+id/title"
+            style="@android:style/TextAppearance.Medium"
             android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            style="@android:style/TextAppearance.DeviceDefault.Medium" />
+            android:layout_height="wrap_content" />
 
         <TextView
             android:id="@+id/summary"
+            style="@android:style/TextAppearance.Small"
             android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            style="@android:style/TextAppearance.DeviceDefault.Small" />
+            android:layout_height="wrap_content" />
     </LinearLayout>
 
     <CheckBox
diff --git a/Widgets/res/layout/list_content.xml b/Widgets/res/layout/list_content.xml
new file mode 100644 (file)
index 0000000..b0cd4c6
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent" >
+
+    <LinearLayout
+        android:id="@+id/list"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" />
+
+    <LinearLayout
+        android:id="@+id/content"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" />
+
+</FrameLayout>
\ No newline at end of file
similarity index 93%
rename from Widgets/res/layout/activity_base_fragment.xml
rename to Widgets/res/layout/list_fragment.xml
index f5eb1e3..e603a14 100644 (file)
@@ -20,7 +20,6 @@
 
     <TextView
         android:textAppearance="@android:style/TextAppearance.DeviceDefault"
-        xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/empty"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
index b3be504..5deda8f 100644 (file)
@@ -5,50 +5,5 @@
     android:minHeight="64dp"
     android:orientation="horizontal" >
 
-    <ImageView
-        android:id="@+id/image"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
-        android:layout_gravity="center_vertical"
-        android:layout_margin="2dp"
-        android:scaleType="fitCenter" >
-    </ImageView>
-
-    <LinearLayout
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:paddingLeft="4dp" >
-
-        <TextView
-            android:id="@+id/title"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="2dp"
-            android:layout_marginRight="2dp"
-            android:textColor="@android:color/primary_text_dark"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
-
-        <TextView
-            android:id="@+id/summary"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="2dp"
-            android:layout_marginRight="2dp"
-            android:textColor="@android:color/secondary_text_dark"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
-    </LinearLayout>
-
-    <CheckBox
-        android:id="@+id/checkbox"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:layout_marginLeft="2dp"
-        android:layout_marginRight="2dp"
-        android:focusable="false"
-        android:focusableInTouchMode="false" />
-
+  <include layout="@layout/list_item_base" />
 </LinearLayout>
\ No newline at end of file
similarity index 83%
rename from Widgets/res/layout/list_item_small.xml
rename to Widgets/res/layout/list_item_base.xml
index d9e51e8..c40d445 100644 (file)
@@ -1,9 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="64dp"
-    android:orientation="horizontal" >
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
 
     <ImageView
         android:id="@+id/image"
@@ -15,7 +11,7 @@
     </ImageView>
 
     <LinearLayout
-        android:layout_width="fill_parent"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_weight="1"
@@ -46,4 +42,4 @@
         android:focusable="false"
         android:focusableInTouchMode="false" />
 
-</LinearLayout>
\ No newline at end of file
+</merge>
\ No newline at end of file
diff --git a/Widgets/res/layout/list_item_selectable.xml b/Widgets/res/layout/list_item_selectable.xml
new file mode 100644 (file)
index 0000000..1ded97f
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:background="?android:attr/activatedBackgroundIndicator"
+    android:minHeight="64dp"
+    android:orientation="horizontal" >
+
+    <include layout="@layout/list_item_base" />
+
+</LinearLayout>
\ No newline at end of file
index 8d9481a..03b4f47 100644 (file)
@@ -28,6 +28,10 @@ public class ActivityBase extends FragmentActivity implements ActivityBaseFragme
         return fragment.getView();
     }
     
+    protected int getListContainerId() {
+        return android.R.id.content;
+    }
+    
     ActivityBaseFragment fragment;
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -36,7 +40,7 @@ public class ActivityBase extends FragmentActivity implements ActivityBaseFragme
             fragment = (ActivityBaseFragment)clazz.getConstructors()[0].newInstance();
             fragment.setArguments(getIntent().getExtras());
             fragment.setListener(this);
-            getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
+            getSupportFragmentManager().beginTransaction().add(getListContainerId(), fragment).commit();
         }
         catch (Exception e) {
             e.printStackTrace();
@@ -64,7 +68,7 @@ public class ActivityBase extends FragmentActivity implements ActivityBaseFragme
         getFragment().setEmpty(res);
     }
 
-    public boolean isDestroyed() {
+    public boolean isDestroyedLegacy() {
         return mDestroyed;
     }
     
index e48746e..60a8f89 100644 (file)
@@ -223,7 +223,7 @@ public class ActivityBaseFragment extends Fragment {
     TextView mEmpty;
     @Override
     public final View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        View ret = inflater.inflate(R.layout.activity_base_fragment, null);
+        View ret = inflater.inflate(R.layout.list_fragment, null);
         
         mListView = (ListView)ret.findViewById(R.id.listview);
         mListView.setOnItemClickListener(new OnItemClickListener() {
@@ -274,7 +274,7 @@ public class ActivityBaseFragment extends Fragment {
     }
     
     public int getListItemResource() {
-        return R.layout.list_item_small;
+        return R.layout.list_item;
     }
 
     public void clear() {
@@ -312,4 +312,8 @@ public class ActivityBaseFragment extends Fragment {
         mListView.setEmptyView(mEmpty);
         mEmpty.setText(res);
     }
+    
+    public ListView getListView() {
+        return mListView;
+    }
 }
diff --git a/Widgets/src/com/koushikdutta/widgets/ListContentActivity.java b/Widgets/src/com/koushikdutta/widgets/ListContentActivity.java
new file mode 100644 (file)
index 0000000..fd63aa0
--- /dev/null
@@ -0,0 +1,40 @@
+package com.koushikdutta.widgets;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ListView;
+
+
+public class ListContentActivity extends ActivityBase {
+    public static class ListContentFragment extends ActivityBaseFragment {
+        @Override
+        public int getListItemResource() {
+            return R.layout.list_item_selectable;
+        }
+    }
+
+    public ListContentActivity() {
+        super(ListContentFragment.class);
+    }
+    
+    @Override
+    protected int getListContainerId() {
+        return R.id.list;
+    }
+    
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.list_content);
+    }
+    
+    @Override
+    public void onCreate(Bundle savedInstanceState, View view) {
+        super.onCreate(savedInstanceState, view);
+        
+        getFragment().getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+//        getFragment().getListView().setCacheColorHint(android.R.color.transparent);
+//        getFragment().getListView().setSelector(R.drawable.list_selector);
+    }
+}
diff --git a/Widgets/src/com/koushikdutta/widgets/app_layout.xml b/Widgets/src/com/koushikdutta/widgets/app_layout.xml
new file mode 100644 (file)
index 0000000..629a28d
--- /dev/null
@@ -0,0 +1,13 @@
+<merge xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <include
+        android:visibility="gone"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        layout="@layout/app_info" />
+
+    <include
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        layout="@layout/app_icons" />
+</merge>
\ No newline at end of file
index 16080d0..ad86e7c 100644 (file)
@@ -6,7 +6,7 @@
 
     <uses-sdk
         android:minSdkVersion="8"
-        android:targetSdkVersion="16" />
+        android:targetSdkVersion="17" />
 
     <application
         android:allowBackup="true"
@@ -14,7 +14,7 @@
         android:label="@string/app_name"
         android:theme="@android:style/Theme.DeviceDefault.Light" >
         <activity
-            android:name="com.koushikdutta.widgets.sample.MainActivity"
+            android:name=".MainActivity"
             android:label="@string/app_name" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-        
-        <activity 
-            android:name=".MainActivityDark"
-            android:theme="@android:style/Theme.DeviceDefault"
-            />
+        <activity
+            android:name=".MainActivityDark" />
+        <activity
+            android:name=".ListContentTest"
+            android:theme="@android:style/Theme.Holo" />
     </application>
 
 </manifest>
\ No newline at end of file
index c28b5e2..21a9e88 100644 (file)
@@ -8,15 +8,17 @@ package com.koushikdutta.widgets;
 
 public final class R {
        public static final class id {
-               public static final int summary = 0x7f060007;
-               public static final int title = 0x7f060006;
-               public static final int title_container = 0x7f060000;
-               public static final int list_header_title = 0x7f060004;
-               public static final int checkbox = 0x7f060008;
-               public static final int empty = 0x7f060002;
-               public static final int image = 0x7f060005;
-               public static final int footer_container = 0x7f060003;
-               public static final int listview = 0x7f060001;
+               public static final int summary = 0x7f060009;
+               public static final int content = 0x7f060001;
+               public static final int title = 0x7f060008;
+               public static final int title_container = 0x7f060002;
+               public static final int list_header_title = 0x7f060006;
+               public static final int empty = 0x7f060004;
+               public static final int checkbox = 0x7f06000a;
+               public static final int footer_container = 0x7f060005;
+               public static final int image = 0x7f060007;
+               public static final int list = 0x7f060000;
+               public static final int listview = 0x7f060003;
        }
        public static final class color {
                public static final int holo_blue_light = 0x7f040000;
@@ -24,9 +26,11 @@ public final class R {
                public static final int holo_blue_dark = 0x7f040001;
        }
        public static final class layout {
-               public static final int list_header = 0x7f030001;
-               public static final int list_item_small = 0x7f030003;
-               public static final int list_item = 0x7f030002;
-               public static final int activity_base_fragment = 0x7f030000;
+               public static final int list_content = 0x7f030000;
+               public static final int list_header = 0x7f030002;
+               public static final int list_item_base = 0x7f030004;
+               public static final int list_item = 0x7f030003;
+               public static final int list_item_selectable = 0x7f030005;
+               public static final int list_fragment = 0x7f030001;
        }
 }
index a6b14a4..9b21a2b 100644 (file)
@@ -23,21 +23,25 @@ public final class R {
         public static final int nexusone=0x7f020004;
     }
     public static final class id {
-        public static final int checkbox=0x7f060008;
-        public static final int empty=0x7f060002;
-        public static final int footer_container=0x7f060003;
-        public static final int image=0x7f060005;
-        public static final int list_header_title=0x7f060004;
-        public static final int listview=0x7f060001;
-        public static final int summary=0x7f060007;
-        public static final int title=0x7f060006;
-        public static final int title_container=0x7f060000;
+        public static final int checkbox=0x7f06000a;
+        public static final int content=0x7f060001;
+        public static final int empty=0x7f060004;
+        public static final int footer_container=0x7f060005;
+        public static final int image=0x7f060007;
+        public static final int list=0x7f060000;
+        public static final int list_header_title=0x7f060006;
+        public static final int listview=0x7f060003;
+        public static final int summary=0x7f060009;
+        public static final int title=0x7f060008;
+        public static final int title_container=0x7f060002;
     }
     public static final class layout {
-        public static final int activity_base_fragment=0x7f030000;
-        public static final int list_header=0x7f030001;
-        public static final int list_item=0x7f030002;
-        public static final int list_item_small=0x7f030003;
+        public static final int list_content=0x7f030000;
+        public static final int list_fragment=0x7f030001;
+        public static final int list_header=0x7f030002;
+        public static final int list_item=0x7f030003;
+        public static final int list_item_base=0x7f030004;
+        public static final int list_item_selectable=0x7f030005;
     }
     public static final class string {
         public static final int app_name=0x7f050000;
diff --git a/WidgetsSample/src/com/koushikdutta/widgets/sample/ListContentTest.java b/WidgetsSample/src/com/koushikdutta/widgets/sample/ListContentTest.java
new file mode 100644 (file)
index 0000000..a7ee6bb
--- /dev/null
@@ -0,0 +1,23 @@
+package com.koushikdutta.widgets.sample;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.koushikdutta.widgets.ListContentActivity;
+import com.koushikdutta.widgets.ListItem;
+
+public class ListContentTest extends ListContentActivity {
+    @Override
+    public void onCreate(Bundle savedInstanceState, View view) {
+        super.onCreate(savedInstanceState, view);
+
+//        android:background="?android:attr/activatedBackgroundIndicator"
+        addItem(R.string.devices, new ListItem(getFragment(), "Nexus S", null, R.drawable.nexusone));
+        addItem(R.string.devices, new ListItem(getFragment(), "Nexus One", null, R.drawable.nexusone));
+        addItem(R.string.devices, new ListItem(getFragment(), "Nexus 4", null, R.drawable.nexusone));
+        addItem(R.string.devices, new ListItem(getFragment(), "Nexus 7", null, R.drawable.nexusone));
+        addItem(R.string.devices, new ListItem(getFragment(), "Nexus 10", null, R.drawable.nexusone));
+
+        getFragment().getListView().setItemChecked(0, true);
+    }
+}
index 0e1cd46..f7dfc7b 100644 (file)
@@ -14,6 +14,13 @@ public class MainActivity extends ActivityBase {
     public void onCreate(Bundle savedInstanceState, View view) {
         super.onCreate(savedInstanceState, view);
         
+        addItem("Content", new ListItem(getFragment(), "List Content", null, R.drawable.ic_launcher) {
+            @Override
+            public void onClick(View view) {
+                super.onClick(view);
+                startActivity(new Intent(MainActivity.this, ListContentTest.class));
+            }
+        });        
         addItem("Theme", new ListItem(getFragment(), "Dark Theme", null, R.drawable.ic_launcher) {
             @Override
             public void onClick(View view) {