Theming and UI changes

pull/14/head
Andrew Shaw 13 years ago
parent ab8bfbeda6
commit 599e7b7561

@ -204,8 +204,7 @@ public final class TagData extends RemoteModel {
} }
public String getPictureHash() { public String getPictureHash() {
String s = getValue(TagData.NAME) + "" + getValue(TagData.CREATION_DATE); return getId() + "" + getValue(TagData.CREATION_DATE);
return s;
} }
} }

@ -23,6 +23,7 @@ import android.util.Log;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -33,6 +34,7 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback; import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback;
@ -40,7 +42,9 @@ import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncService; import com.todoroo.astrid.actfm.sync.ActFmSyncService;
import com.todoroo.astrid.activity.FilterListFragment; import com.todoroo.astrid.activity.FilterListFragment;
import com.todoroo.astrid.activity.ShortcutActivity; import com.todoroo.astrid.activity.ShortcutActivity;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.helper.ImageDiskCache; import com.todoroo.astrid.helper.ImageDiskCache;
import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsConstants;
@ -172,6 +176,20 @@ public class TagSettingsActivity extends FragmentActivity {
isSilent = (ToggleButton) findViewById(R.id.tag_silenced); isSilent = (ToggleButton) findViewById(R.id.tag_silenced);
isSilent.setChecked(tagData.getFlag(TagData.FLAGS, TagData.FLAG_SILENT)); isSilent.setChecked(tagData.getFlag(TagData.FLAGS, TagData.FLAG_SILENT));
Button leaveListButton = (Button) findViewById(R.id.leave_list);
leaveListButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDeleteDialog(tagData);
}
});
if (isNewTag) {
leaveListButton.setVisibility(View.GONE);
}
else if (tagData.getValue(TagData.MEMBER_COUNT) > 0) {
leaveListButton.setText(getString(R.string.tag_leave_button));
}
if(actFmPreferenceService.isLoggedIn()) { if(actFmPreferenceService.isLoggedIn()) {
findViewById(R.id.tag_silenced_container).setVisibility(View.VISIBLE); findViewById(R.id.tag_silenced_container).setVisibility(View.VISIBLE);
} }
@ -370,13 +388,13 @@ public class TagSettingsActivity extends FragmentActivity {
if (isNewTag) { if (isNewTag) {
titleView.setText(getString(R.string.tag_new_list)); titleView.setText(getString(R.string.tag_new_list));
} else { } else {
titleView.setText(getString(R.string.tag_settings_title, tagData.getValue(TagData.NAME))); titleView.setText(getString(R.string.tag_settings_title));
} }
} else { } else {
if (isNewTag) { if (isNewTag) {
setTitle(getString(R.string.tag_new_list)); setTitle(getString(R.string.tag_new_list));
} else { } else {
setTitle(getString(R.string.tag_settings_title, tagData.getValue(TagData.NAME))); setTitle(getString(R.string.tag_settings_title));
} }
} }
String tagImage = tagData.getValue(TagData.PICTURE); String tagImage = tagData.getValue(TagData.PICTURE);
@ -492,6 +510,40 @@ public class TagSettingsActivity extends FragmentActivity {
protected void showDeleteDialog(TagData tagData) {
int string;
if (tagData != null && tagData.getValue(TagData.MEMBER_COUNT) > 0)
string = R.string.DLG_leave_this_shared_tag_question;
else
string = R.string.DLG_delete_this_tag_question;
DialogUtilities.okCancelDialog(this, getString(string, tagData.getValue(TagData.NAME)), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
deleteTag();
}
}, null );
}
protected boolean deleteTag() {
tagDataService.delete(tagData.getId());
boolean shared = false;
if(tagData != null) {
tagData.setValue(TagData.DELETION_DATE, DateUtilities.now());
PluginServices.getTagDataService().save(tagData);
shared = tagData.getValue(TagData.MEMBER_COUNT) > 0 && tagData.getValue(TagData.USER_ID) != 0; // Was I a list member and NOT owner?
}
Intent tagDeleted = new Intent(AstridApiConstants.BROADCAST_EVENT_TAG_DELETED);
tagDeleted.putExtra(TagViewFragment.EXTRA_TAG_NAME, tagData.getValue(TagData.NAME));
tagDeleted.putExtra(TagFilterExposer.TAG_SQL, TagFilterExposer.SHOW_ACTIVE_TASKS);
this.finish();
sendBroadcast(tagDeleted);
return true;
}

@ -59,6 +59,7 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE
private static final String TAG = "tag"; //$NON-NLS-1$ private static final String TAG = "tag"; //$NON-NLS-1$
public static final String TAG_SQL = "tagSql"; //$NON-NLS-1$ public static final String TAG_SQL = "tagSql"; //$NON-NLS-1$
public static final String SHOW_ACTIVE_TASKS = "show_main_task_view"; //$NON-NLS-1$
@Autowired TagDataService tagDataService; @Autowired TagDataService tagDataService;
@Autowired GtasksPreferenceService gtasksPreferenceService; @Autowired GtasksPreferenceService gtasksPreferenceService;

@ -138,6 +138,18 @@ public final class TagService {
Field.field("mtags." + TAG.name).eqCaseInsensitive(tag)))).where(criterion); Field.field("mtags." + TAG.name).eqCaseInsensitive(tag)))).where(criterion);
} }
/**
* Return SQL selector query for getting tasks with a given tagData
*
* @param tagData
* @return
*/
public static QueryTemplate queryTemplate(Criterion criterion, TagData tagData) {
return new QueryTemplate().join(Join.inner(Metadata.TABLE,
Task.ID.eq(Metadata.TASK))).where(tagEqIgnoreCase(tagData.getValue(TagData.NAME), criterion));
}
} }
public static Criterion memberOfTagData(long tagDataRemoteId) { public static Criterion memberOfTagData(long tagDataRemoteId) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

@ -1,22 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- settings tab --> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:astrid="http://schemas.android.com/apk/res/com.timsu.astrid" xmlns:astrid="http://schemas.android.com/apk/res/com.timsu.astrid"
android:id="@+id/settings" android:id="@+id/settings"
style="@style/Content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView
style="@style/Content_EditScroll" style="@style/Content_EditScroll"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="fill_parent"
android:layout_weight="100" > android:layout_weight="100" >
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="5dip" android:padding="5dip"
android:paddingTop="0dip" > android:paddingTop="0dip" >
@ -49,7 +42,8 @@
<RelativeLayout <RelativeLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="10dip" > android:paddingBottom="5dip"
android:paddingTop="5dip" >
<!-- picture --> <!-- picture -->
@ -76,12 +70,12 @@
<EditText <EditText
android:id="@+id/tag_name" android:id="@+id/tag_name"
style="@style/EditRow" style="@style/EditRow"
android:maxLines="1"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tag_label" android:layout_below="@id/tag_label"
android:layout_marginTop="10dip" android:layout_marginTop="10dip"
android:layout_toRightOf="@id/picture" android:layout_toRightOf="@id/picture"
android:maxLines="1"
android:padding="10dip" android:padding="10dip"
android:paddingBottom="14dip" /> android:paddingBottom="14dip" />
</RelativeLayout> </RelativeLayout>
@ -143,8 +137,7 @@
android:id="@+id/tag_silenced_container" android:id="@+id/tag_silenced_container"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal" >
android:padding="5dip" >
<TextView <TextView
style="@style/TextAppearance" style="@style/TextAppearance"
@ -152,15 +145,16 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_marginTop="10dip" android:layout_marginTop="10dip"
android:padding="5dip"
android:text="@string/actfm_TVA_silence_label" /> android:text="@string/actfm_TVA_silence_label" />
<ToggleButton <ToggleButton
android:id="@+id/tag_silenced" android:id="@+id/tag_silenced"
style="@style/TextAppearance" style="@style/TextAppearance"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="35dip" android:layout_height="wrap_content"
android:background="#00000000" android:layout_alignParentRight="true"
android:layout_alignParentRight="true" /> android:paddingRight="5dip" />
</RelativeLayout> </RelativeLayout>
<View <View
@ -191,10 +185,18 @@
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@android:drawable/ic_media_ff" /> android:src="@drawable/icn_list_shortcut" />
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
<Button
android:id="@+id/leave_list"
style="@style/DeleteTag"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:layout_marginTop="10dip"
android:padding="5dip"
android:text="@string/tag_delete_button" />
</LinearLayout> </LinearLayout>
</ScrollView>
</LinearLayout> </ScrollView>

@ -102,9 +102,15 @@
can simply delete the new combined list!</string> can simply delete the new combined list!</string>
<!-- Header for tag settings --> <!-- Header for tag settings -->
<string name="tag_settings_title">Settings: %s</string> <string name="tag_settings_title">List Settings</string>
<!-- Header for tag activity --> <!-- Header for tag activity -->
<string name="tag_updates_title">Activity: %s</string> <string name="tag_updates_title">Activity: %s</string>
<!-- Delete button for tag settings -->
<string name="tag_delete_button">Delete List</string>
<!-- Leave button for tag settings -->
<string name="tag_leave_button">Leave This List</string>
</resources> </resources>

@ -156,6 +156,11 @@
<item name="android:windowTitleStyle">@style/DialogTitle</item> <item name="android:windowTitleStyle">@style/DialogTitle</item>
<item name="android:windowTitleBackgroundStyle">@style/DialogTitle</item> <item name="android:windowTitleBackgroundStyle">@style/DialogTitle</item>
<item name="android:colorBackgroundCacheHint">@null</item> <item name="android:colorBackgroundCacheHint">@null</item>
<item name="asEditBackground">#101010</item>
<item name="asEditRowBackground">@drawable/task_edit_background</item>
<item name="asThemeTextColor">@color/blue_theme_color</item>
</style> </style>
<style name="Theme.Dialog.White"> <style name="Theme.Dialog.White">
@ -171,6 +176,10 @@
<item name="abBackground">@android:color/white</item> <item name="abBackground">@android:color/white</item>
<item name="abDisplayOptions">useLogo|showHome|showTitle</item> <item name="abDisplayOptions">useLogo|showHome|showTitle</item>
<item name="abLogo">@drawable/icon_48</item> <item name="abLogo">@drawable/icon_48</item>
<item name="asEditBackground">#dddddd</item>
<item name="asEditRowBackground">@drawable/task_edit_background_transparent_white</item>
<item name="asThemeTextColor">@color/blue_theme_color</item>
</style> </style>
<!--================================================== General == --> <!--================================================== General == -->
@ -375,6 +384,13 @@
<item name="android:textColor">?attr/asFilterHeaderColor</item> <item name="android:textColor">?attr/asFilterHeaderColor</item>
</style> </style>
<!-- ========================================================= Tag Settings == -->
<style name="DeleteTag" >
<item name="android:textColor">?attr/asTextColor</item>
<item name="android:background">?attr/asThemeTextColor</item>
</style>
<!-- ========================================================= Widget == --> <!-- ========================================================= Widget == -->
<style name="TextAppearance.Widget"> <style name="TextAppearance.Widget">

@ -488,7 +488,11 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
String deletedTag = intent.getStringExtra(TagViewFragment.EXTRA_TAG_NAME); String deletedTag = intent.getStringExtra(TagViewFragment.EXTRA_TAG_NAME);
String deletedTagSql = intent.getStringExtra(TagFilterExposer.TAG_SQL); String deletedTagSql = intent.getStringExtra(TagFilterExposer.TAG_SQL);
FilterListFragment fl = getFilterListFragment(); FilterListFragment fl = getFilterListFragment();
if (fl != null) { if (deletedTagSql.equals(TagFilterExposer.SHOW_ACTIVE_TASKS)) {
fl.switchToActiveTasks();
fl.clear(); // Should auto refresh
}
else if (fl != null) {
Filter currentlyShowing = getIntent().getParcelableExtra(TaskListFragment.TOKEN_FILTER); Filter currentlyShowing = getIntent().getParcelableExtra(TaskListFragment.TOKEN_FILTER);
if (currentlyShowing != null) { if (currentlyShowing != null) {
boolean titlesMatch = currentlyShowing.title != null && currentlyShowing.title.equals(deletedTag); boolean titlesMatch = currentlyShowing.title != null && currentlyShowing.title.equals(deletedTag);

@ -56,10 +56,10 @@ public class UpdateAdapter extends CursorAdapter {
private static final String UPDATE_FRIENDS = "friends"; //$NON-NLS-1$ private static final String UPDATE_FRIENDS = "friends"; //$NON-NLS-1$
private static final String UPDATE_REQUEST_FRIENDSHIP = "request_friendship"; //$NON-NLS-1$ private static final String UPDATE_REQUEST_FRIENDSHIP = "request_friendship"; //$NON-NLS-1$
private static final String UPDATE_CONFIRMED_FRIENDSHIP = "confirmed_friendship"; //$NON-NLS-1$ private static final String UPDATE_CONFIRMED_FRIENDSHIP = "confirmed_friendship"; //$NON-NLS-1$
private static final String UPDATE_TASK_CREATED = "task_created"; private static final String UPDATE_TASK_CREATED = "task_created"; //$NON-NLS-1$
private static final String UPDATE_TASK_COMPLETED = "task_completed"; private static final String UPDATE_TASK_COMPLETED = "task_completed"; //$NON-NLS-1$
private static final String UPDATE_TASK_UNCOMPLETED = "task_uncompleted"; private static final String UPDATE_TASK_UNCOMPLETED = "task_uncompleted"; //$NON-NLS-1$
private static final String UPDATE_TASK_TAGGED = "task_tagged"; private static final String UPDATE_TASK_TAGGED = "task_tagged"; //$NON-NLS-1$
private static final String UPDATE_TASK_ASSIGNED = "task_assigned"; private static final String UPDATE_TASK_ASSIGNED = "task_assigned";
private static final String UPDATE_TASK_COMMENT = "task_comment"; private static final String UPDATE_TASK_COMMENT = "task_comment";
private static final String UPDATE_TAG_COMMENT = "tag_comment"; private static final String UPDATE_TAG_COMMENT = "tag_comment";
@ -270,7 +270,6 @@ public class UpdateAdapter extends CursorAdapter {
else if (actionCode.equals(UPDATE_TAG_COMMENT)) { else if (actionCode.equals(UPDATE_TAG_COMMENT)) {
if (fromView.equals(FROM_TAG_VIEW)) if (fromView.equals(FROM_TAG_VIEW))
commentResource = R.string.update_string_default_comment; commentResource = R.string.update_string_default_comment;
else else
commentResource = R.string.update_string_tag_comment; commentResource = R.string.update_string_tag_comment;

@ -86,6 +86,12 @@ public class PeopleContainer extends LinearLayout {
final AsyncImageView imageView = (AsyncImageView)tagItem. final AsyncImageView imageView = (AsyncImageView)tagItem.
findViewById(R.id.icon); findViewById(R.id.icon);
imageView.setUrl(image); imageView.setUrl(image);
if (TextUtils.isEmpty(textView.getText())) {
imageView.setDefaultImageResource(R.drawable.icn_default_person_image);
}
else {
imageView.setDefaultImageResource(R.drawable.icn_add_contact);
}
textView.addTextChangedListener(new TextWatcher() { textView.addTextChangedListener(new TextWatcher() {
@Override @Override
@ -102,6 +108,10 @@ public class PeopleContainer extends LinearLayout {
int count) { int count) {
if(count > 0 && getLastTextView() == textView) { if(count > 0 && getLastTextView() == textView) {
addPerson("", ""); //$NON-NLS-1$ addPerson("", ""); //$NON-NLS-1$
imageView.setDefaultImageResource(R.drawable.icn_default_person_image);
}
else {
imageView.setDefaultImageResource(R.drawable.icn_add_contact);
} }
if(onAddNewPerson != null) if(onAddNewPerson != null)

Loading…
Cancel
Save