Separate adding of DVDs

* AndroidManifest.xml: Add `AddDVDActivity' as an activity.

* res/layout/add.xml: Layout for `AddDVDActivity'.

* res/layout/main.xml: Remove the nested `LinearLayout' and `EditText'
  widgets.

* res/values/strings.xml: Change the `name_entry' hint text, add
  captions for `wishlist_entry', `watched_entry' and `save_button'.

* src/ryuslash/org/dvdroid/AddDVDActivity.java: New activity.

* src/ryuslash/org/dvdroid/DVDDataSource.java (createDVD): Accept
  WATCHED and WISHLIST parameters and send these to the database
  instead of `0' and `1'.

* src/ryuslash/org/dvdroid/DVDroidActivity.java (addDVD): Call
  `AddDVDActivity' to add a new DVD to the collection.

  (onActivityResult): New override.
This commit is contained in:
Tom Willemsen 2012-08-08 22:11:12 +02:00
parent 0f2bd8ae16
commit 9fc77db218
7 changed files with 123 additions and 31 deletions

View file

@ -11,5 +11,6 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="AddDVDActivity" />
</application>
</manifest>

30
res/layout/add.xml Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:id="@+id/name_entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/name_entry" />
<CheckBox
android:id="@+id/wishlist_entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wishlist_entry" />
<CheckBox
android:id="@+id/watched_entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/watched_entry" />
<Button
android:id="@+id/save_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save_button"
android:onClick="saveDVD" />
</LinearLayout>

View file

@ -3,23 +3,12 @@
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/name_entry"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/name_entry" />
<Button
android:id="@+id/add_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_button"
android:onClick="addDVD" />
</LinearLayout>
<Button
android:id="@+id/add_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_button"
android:onClick="addDVD" />
<ListView
android:id="@android:id/list"

View file

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">DVDroid</string>
<string name="name_entry">Enter A DVD title</string>
<string name="name_entry">Title...</string>
<string name="wishlist_entry">On wishlist</string>
<string name="watched_entry">Watched</string>
<string name="add_button">Add</string>
<string name="save_button">Save</string>
</resources>

View file

@ -0,0 +1,59 @@
package ryuslash.org.dvdroid;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
public class AddDVDActivity extends Activity
{
private DVDDataSource datasource;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.add);
datasource = new DVDDataSource(this);
datasource.open();
}
public void saveDVD(View view)
{
EditText name_entry = (EditText)findViewById(R.id.name_entry);
CheckBox watched_entry =
(CheckBox)findViewById(R.id.watched_entry);
CheckBox wishlist_entry =
(CheckBox)findViewById(R.id.wishlist_entry);
datasource.createDVD(name_entry.getText().toString(),
watched_entry.isChecked() ? 1 : 0,
wishlist_entry.isChecked() ? 1 : 0);
finish();
}
@Override
protected void onResume()
{
datasource.open();
super.onResume();
}
@Override
protected void onPause()
{
datasource.close();
super.onPause();
}
@Override
protected void onDestroy()
{
datasource.close();
super.onDestroy();
}
}

View file

@ -33,13 +33,13 @@ public class DVDDataSource
dbHelper.close();
}
public DVD createDVD(String title)
public DVD createDVD(String title, int watched, int wishlist)
{
ContentValues values = new ContentValues();
values.put(SQLiteHelper.COLUMN_TITLE, title);
values.put(SQLiteHelper.COLUMN_WATCHED, 0);
values.put(SQLiteHelper.COLUMN_WISHLIST, 1);
values.put(SQLiteHelper.COLUMN_WATCHED, watched);
values.put(SQLiteHelper.COLUMN_WISHLIST, wishlist);
long insertId = database.insert(SQLiteHelper.TABLE_DVD, null,
values);

View file

@ -4,6 +4,7 @@ import java.util.List;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
@ -35,17 +36,10 @@ public class DVDroidActivity extends ListActivity
public void addDVD(View view)
{
ArrayAdapter<DVD> adapter = (ArrayAdapter<DVD>)getListAdapter();
EditText editText = (EditText)findViewById(R.id.name_entry);
DVD dvd = datasource.createDVD(editText.getText().toString());
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, "Added " + editText.getText(),
duration);
Intent intent = new Intent(this, AddDVDActivity.class);
editText.setText("");
adapter.add(dvd);
adapter.notifyDataSetChanged();
toast.show();
datasource.close();
startActivityForResult(intent, 1);
}
@Override
@ -61,4 +55,20 @@ public class DVDroidActivity extends ListActivity
datasource.close();
super.onPause();
}
@Override
protected void onActivityResult(int requestCode,
int resultCode,
Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
datasource.open();
ArrayAdapter<DVD> adapter = (ArrayAdapter<DVD>)getListAdapter();
List<DVD> dvds = datasource.getWishlist();
adapter.clear();
adapter.addAll(dvds);
adapter.notifyDataSetChanged();
}
}