Fiw layout for Android4.0 and Simplify some code

This commit is contained in:
Mathieu Maret 2012-09-27 22:31:15 +02:00
parent 1573577752
commit cb5428f67c
12 changed files with 101 additions and 185 deletions

View File

@ -3,5 +3,6 @@
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/> <classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="output" path="bin"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath> </classpath>

View File

@ -1,2 +1,2 @@
key.store=/home/mathieu/mathieu/Android/keys/KeyOpenWide key.store=/home/mathieu/Android/Keys/KeyOpenWide
key.alias=openwide key.alias=openwide

View File

@ -1,11 +0,0 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-8

View File

@ -1,36 +0,0 @@
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

View File

@ -2,8 +2,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<ListView android:id="@+id/android:list" android:layout_width="fill_parent" <ListView android:id="@+id/android:list"
android:layout_height="wrap_content" android:choiceMode="singleChoice" /> android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice" />
<TextView android:id="@+id/android:empty" <TextView android:id="@+id/android:empty"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="@string/nodelivery" /> android:text="@string/nodelivery" />

View File

@ -17,7 +17,7 @@
</LinearLayout> </LinearLayout>
<EditText android:id="@+id/editor" android:layout_width="fill_parent" <EditText android:id="@+id/editor" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:autoText="true" android:layout_height="0dip" android:autoText="true"
android:capitalize="sentences" android:layout_weight="1" android:capitalize="sentences" android:layout_weight="1"
android:hint="@string/entermessage" android:hint="@string/entermessage"
android:nextFocusRight="@+id/send" android:nextFocusRight="@+id/send"

View File

@ -1,16 +1,40 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/row_background"
android:orientation="horizontal"> android:layout_width="fill_parent"
<CheckBox android:id="@+id/CheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox> android:layout_height="wrap_content"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" >
android:layout_width="wrap_content" android:layout_height="wrap_content" <CheckBox
android:orientation="vertical"> android:id="@+id/CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
</CheckBox>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:padding="5dip"
/>
<TextView
android:id="@+id/phone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:padding="5dip"
/>
</LinearLayout>
<TextView android:id="@+id/name" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:id="@+id/phone" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -29,4 +29,5 @@
<string name="message_sent">Messagen(s) enviadas</string> <string name="message_sent">Messagen(s) enviadas</string>
<string name="enter_number">Digite o número ou selecione o contato através do ícone</string> <string name="enter_number">Digite o número ou selecione o contato através do ícone</string>
<string name="warning_many_message">Você está prestes a enviar mais de 50 mensagens, isso poderá causar um erro no aplicativo, ocorrerá uma pausa entre o envio das mensagens. Deseja continuar o envio?</string> <string name="warning_many_message">Você está prestes a enviar mais de 50 mensagens, isso poderá causar um erro no aplicativo, ocorrerá uma pausa entre o envio das mensagens. Deseja continuar o envio?</string>
<string name="more_message">Você está pronto para 50 mensagens mais?</string>
</resources> </resources>

View File

@ -1,70 +0,0 @@
package com.hectorone.multismssender;
import android.content.Context;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ContactRow extends LinearLayout {
CheckBox mSelectedCheckBox;
TextView mNameTextView;
TextView mNumberView;
LinearLayout mInfoLayout;
Long mId;
public ContactRow(Context context) {
super(context);
mSelectedCheckBox = new CheckBox(context);
mInfoLayout = new LinearLayout(context);
mNameTextView = new TextView(context);
mNumberView = new TextView(context);
mNameTextView.setTextSize(30,0);
mNumberView.setTextSize(18,0);
mSelectedCheckBox.setText("");
mSelectedCheckBox.setFocusable(false);
this.addView(mSelectedCheckBox, new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.FILL_PARENT));
mInfoLayout.setOrientation(LinearLayout.VERTICAL);
mInfoLayout.addView(mNameTextView, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
mInfoLayout.addView(mNumberView, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
this.addView(mInfoLayout, new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.FILL_PARENT));
this.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mSelectedCheckBox.performClick();
}
});
}
public void display(String name, String number, boolean isSelected) {
mNameTextView.setText(name);
mNumberView.setText(number);
mSelectedCheckBox.setChecked(isSelected);
}
public void display(String name, String number, boolean isSelected, long id) {
display( name, number, isSelected);
mId = id;
}
}

View File

@ -17,6 +17,7 @@ import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.SimpleCursorAdapter; import android.widget.SimpleCursorAdapter;
public class GroupEditActivity extends ListActivity { public class GroupEditActivity extends ListActivity {
@ -148,42 +149,52 @@ public class GroupEditActivity extends ListActivity {
Cursor c = getCursor(); Cursor c = getCursor();
startManagingCursor(c); startManagingCursor(c);
c.moveToPosition(position); c.moveToPosition(position);
String name = c.getString(nameidx); // String name = c.getString(nameidx);
String number = c.getString(numberidx); String contactNumber = c.getString(numberidx);
long id = c.getLong(idIdx); long id = c.getLong(idIdx);
ContactRow contact;
if (convertView == null) {
contact = new ContactRow(mContext);
}else {
contact = (ContactRow) convertView;
}
contact.display(name, number, selected.contains(number), id);
contact.mSelectedCheckBox.setOnClickListener(new addNumberToGroupClickListener(contact));
return contact; View v = super.getView(position, convertView, parent);
LinearLayout background = (LinearLayout)v.findViewById(R.id.row_background);
CheckBox checkbox = (CheckBox)v.findViewById(R.id.CheckBox);
checkbox.setOnClickListener(new addNumberToGroupClickListener(id));
checkbox.setChecked(selected.contains(contactNumber));
background.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox checkbox = (CheckBox)v.findViewById(R.id.CheckBox);
checkbox.performClick();
}
});
return v;
} }
} }
private class addNumberToGroupClickListener implements OnClickListener{ private class addNumberToGroupClickListener implements OnClickListener{
ContactRow mContact; Long mId;
public addNumberToGroupClickListener(ContactRow mContact) { public addNumberToGroupClickListener(Long id) {
super(); super();
this.mContact = mContact; this.mId = id;
} }
public void onClick(View v) { public void onClick(View v) {
CheckBox cBox = (CheckBox)v; CheckBox cBox = (CheckBox)v;
createGroup(); createGroup();
long phoneId = mContact.mId;
if(cBox.isChecked()) { if(cBox.isChecked()) {
mDb.addPhoneToGroup(mGid, phoneId); mDb.addPhoneToGroup(mGid, mId);
}else { }else {
mDb.removePhoneToGroup(mGid, phoneId); mDb.removePhoneToGroup(mGid, mId);
} }
} }

View File

@ -81,6 +81,7 @@ public class ListEntryActivity extends ListActivity {
public EntryCursorAdapter(Context context, int layout, Cursor c, public EntryCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) { String[] from, int[] to) {
super(context, layout, c, from, to); super(context, layout, c, from, to);
//TODO this.getCursor()
this.c = c; this.c = c;
deliveredIdx = c.getColumnIndex(DeliveryDbAdapter.KEY_DELIVERY_ENTRY_DELIVERED); deliveredIdx = c.getColumnIndex(DeliveryDbAdapter.KEY_DELIVERY_ENTRY_DELIVERED);
} }

View File

@ -2,7 +2,6 @@ package com.hectorone.multismssender;
import java.util.HashSet; import java.util.HashSet;
import android.app.ListActivity; import android.app.ListActivity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -18,7 +17,9 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.SimpleCursorAdapter; import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class PhoneNumberSelection extends ListActivity public class PhoneNumberSelection extends ListActivity
@ -85,11 +86,6 @@ public class PhoneNumberSelection extends ListActivity
Contacts.DISPLAY_NAME, Phone.NUMBER Contacts.DISPLAY_NAME, Phone.NUMBER
}, new int[] {R.id.name, R.id.phone}, mSelectedSet); }, new int[] {R.id.name, R.id.phone}, mSelectedSet);
/*Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, Phones.NAME);
startManagingCursor(c);
mAdpater = new PhoneDataListAdapter(this, R.layout.number_row, c, new String[] {
Phones.NAME, Phones.NUMBER
}, new int[] {R.id.name, R.id.phone}, mSelectedSet);*/
setListAdapter(mAdpater); setListAdapter(mAdpater);
} }
@ -97,7 +93,6 @@ public class PhoneNumberSelection extends ListActivity
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu); super.onCreateOptionsMenu(menu);
//menu.add(0, INSERT_ID,0, R.string.add_group);
menu.add(0, SELECT_ALL_ID, 0, R.string.select_all); menu.add(0, SELECT_ALL_ID, 0, R.string.select_all);
menu.add(0, DESELECT_ALL_ID, 0, R.string.deselect_all); menu.add(0, DESELECT_ALL_ID, 0, R.string.deselect_all);
return true; return true;
@ -161,53 +156,51 @@ public class PhoneNumberSelection extends ListActivity
public class PhoneDataListAdapter extends SimpleCursorAdapter{ public class PhoneDataListAdapter extends SimpleCursorAdapter{
int nameidx;
int numberidx;
Context mContext;
public PhoneDataListAdapter(Context context, int layout, Cursor c, public PhoneDataListAdapter(Context context, int layout, Cursor c,
String[] from, int[] to, HashSet<String> selected) { String[] from, int[] to, HashSet<String> selected) {
super(context, layout, c, from, to); super(context, layout, c, from, to);
nameidx = c.getColumnIndex(Contacts.DISPLAY_NAME);
numberidx = c.getColumnIndex(Phone.NUMBER);
mContext = context;
} }
public View getView(int position, View convertView, ViewGroup parent) {
Cursor c = getCursor();
c.moveToPosition(position);
String name = c.getString(nameidx);
String number = c.getString(numberidx);
ContactRow contact;
if (convertView == null) {
contact = new ContactRow(mContext);
}else {
contact = (ContactRow) convertView;
}
contact.display(name, number, mSelectedSet.contains(number));
contact.mSelectedCheckBox.setOnClickListener(new addNumberToSelectedClickListener(contact));
return contact; public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
LinearLayout background = (LinearLayout)v.findViewById(R.id.row_background);
String contactNumber = ((TextView)v.findViewById(R.id.phone)).getText().toString();
CheckBox checkbox = (CheckBox)v.findViewById(R.id.CheckBox);
checkbox.setOnClickListener(new addNumberToSelectedClickListener(contactNumber));
checkbox.setChecked(mSelectedSet.contains(contactNumber));
background.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox checkbox = (CheckBox)v.findViewById(R.id.CheckBox);
checkbox.performClick();
}
});
return v;
} }
} }
private class addNumberToSelectedClickListener implements OnClickListener{ private class addNumberToSelectedClickListener implements OnClickListener{
ContactRow contact; String contactNumber;
public addNumberToSelectedClickListener(ContactRow contact) { public addNumberToSelectedClickListener(String contact) {
this.contact = contact; this.contactNumber = contact;
} }
public void onClick(View v) { public void onClick(View v) {
CheckBox checkBox = (CheckBox)v; CheckBox checkBox = (CheckBox)v;
if(checkBox.isChecked()) { if(checkBox.isChecked()) {
mSelectedSet.add(contact.mNumberView.getText().toString()); mSelectedSet.add(contactNumber);
}else { }else {
mSelectedSet.remove(contact.mNumberView.getText().toString()); mSelectedSet.remove(contactNumber);
} }
} }