Skip to content

Commit

Permalink
more simple list layouts.
Browse files Browse the repository at this point in the history
disabled hardware acceleration, i found this will make list veeeeeeeeeery smooth
multi selecting should work normally.
  • Loading branch information
mariotaku committed Sep 2, 2012
1 parent 179fd50 commit 3349f6a
Show file tree
Hide file tree
Showing 20 changed files with 206 additions and 149 deletions.
2 changes: 1 addition & 1 deletion AndroidManifest.xml
Expand Up @@ -58,7 +58,7 @@

<application
android:name=".app.TwidereApplication"
android:hardwareAccelerated="true"
android:hardwareAccelerated="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Twidere.Light">
Expand Down
Binary file modified res/drawable-xhdpi/list_focused_holo.9.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 6 additions & 6 deletions res/layout-ar/status_list_item.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<org.mariotaku.twidere.view.ExtendedRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
<org.mariotaku.twidere.view.ColorLabelRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp">

Expand All @@ -11,13 +11,13 @@
android:layout_alignParentRight="true"
android:scaleType="fitCenter"/>

<TextView
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_marginRight="3dp"
android:layout_marginRight="3dp"
android:layout_toLeftOf="@+id/profile_image"
android:gravity="center_vertical|right"
android:singleLine="true"
Expand All @@ -37,7 +37,7 @@
android:gravity="right"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"/>

<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
Expand Down Expand Up @@ -86,5 +86,5 @@
android:textColor="#606060"
android:textStyle="bold"
android:visibility="gone"/>
</org.mariotaku.twidere.view.ExtendedRelativeLayout>

</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
4 changes: 2 additions & 2 deletions res/layout-ar/user_list_item.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<org.mariotaku.twidere.view.ColorLabelRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp">
Expand Down Expand Up @@ -47,4 +47,4 @@
android:textStyle="bold"
android:visibility="gone"/>

</RelativeLayout>
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
2 changes: 1 addition & 1 deletion res/layout-ar/view_status.xml
Expand Up @@ -24,7 +24,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/item_background_holo_light"
android:padding="8dp">
android:padding="6dp">

<org.mariotaku.twidere.view.RoundCorneredImageView
android:id="@+id/profile_image"
Expand Down
14 changes: 5 additions & 9 deletions res/layout/status_list_item.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<org.mariotaku.twidere.view.ExtendedRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<org.mariotaku.twidere.view.ColorLabelRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp">
Expand Down Expand Up @@ -35,8 +35,7 @@
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"/>


<TextView
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Expand All @@ -46,7 +45,7 @@
android:drawablePadding="3dp"
android:gravity="center_vertical|right"
android:textColor="?android:attr/textColorSecondary"/>

<ImageView
android:id="@+id/image_preview"
android:layout_width="@dimen/preview_image_size"
Expand All @@ -72,7 +71,7 @@
android:paddingLeft="6dp"
android:paddingTop="3dp"
android:textColor="?android:attr/textColorSecondary"/>

<TextView
android:id="@+id/list_gap_text"
android:layout_width="wrap_content"
Expand All @@ -83,8 +82,5 @@
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:visibility="gone"/>


</org.mariotaku.twidere.view.ExtendedRelativeLayout>


</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
73 changes: 31 additions & 42 deletions res/layout/user_list_item.xml
@@ -1,50 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<org.mariotaku.twidere.view.ColorLabelRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/user_content"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:padding="6dp">

<org.mariotaku.twidere.view.ColorView
android:id="@+id/user_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_label_user"/>
<org.mariotaku.twidere.view.RoundCorneredImageView
android:id="@+id/profile_image"
android:layout_width="@dimen/profile_image_size"
android:layout_height="@dimen/profile_image_size"
android:scaleType="fitCenter"/>

<RelativeLayout
android:id="@+id/user_content"
android:layout_width="match_parent"
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp">

<org.mariotaku.twidere.view.RoundCorneredImageView
android:id="@+id/profile_image"
android:layout_width="@dimen/profile_image_size"
android:layout_height="@dimen/profile_image_size"
android:scaleType="fitCenter"/>

<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_marginLeft="6dp"
android:layout_toRightOf="@+id/profile_image"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary"
android:textStyle="bold"/>
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_marginLeft="6dp"
android:layout_toRightOf="@+id/profile_image"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary"
android:textStyle="bold"/>

<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/name"
android:layout_alignParentRight="true"
android:layout_alignWithParentIfMissing="true"
android:layout_below="@+id/name"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"/>
</RelativeLayout>
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/name"
android:layout_alignParentRight="true"
android:layout_alignWithParentIfMissing="true"
android:layout_below="@+id/name"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"/>

<TextView
android:id="@+id/list_gap_text"
Expand All @@ -57,4 +46,4 @@
android:textStyle="bold"
android:visibility="gone"/>

</FrameLayout>
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
2 changes: 1 addition & 1 deletion res/layout/view_status.xml
Expand Up @@ -30,7 +30,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/item_background_holo_light"
android:padding="8dp">
android:padding="6dp">

<org.mariotaku.twidere.view.RoundCorneredImageView
android:id="@+id/profile_image"
Expand Down
9 changes: 5 additions & 4 deletions res/menu/action_multi_select.xml
@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item
android:id="@id/reply"
android:icon="@drawable/ic_menu_reply"
android:showAsAction="always"
android:title="@string/reply"/>
<item
android:id="@+id/more_submenu"
android:icon="@drawable/ic_menu_more"
android:title="@string/more">
<menu>
<item
android:id="@id/reply"
android:icon="@drawable/ic_menu_reply"
android:title="@string/reply"/>
<item
android:id="@+id/mute_submenu"
android:icon="@drawable/ic_menu_mute"
Expand Down
2 changes: 2 additions & 0 deletions res/values/strings.xml
Expand Up @@ -173,8 +173,10 @@
<string name="remember_position">Remember position</string>
<string name="remember_position_summary">Remember list/tab position before closing Twidere</string>
<string name="user_blocked">Blocked this user.</string>
<string name="users_blocked">Blocked these users.</string>
<string name="user_unblocked">Unblocked this user.</string>
<string name="reported_user_for_spam">Reported this user for spam.</string>
<string name="reported_users_for_spam">Reported these users for spam.</string>
<string name="filename_hint">Filename</string>
<string name="overwrite_confirm">File exists, overwrite?</string>
<string name="save_as">Save as</string>
Expand Down
66 changes: 60 additions & 6 deletions src/org/mariotaku/twidere/activity/MultiSelectActivity.java
@@ -1,15 +1,20 @@
package org.mariotaku.twidere.activity;

import static org.mariotaku.twidere.util.Utils.getAccountScreenNames;

import java.util.ArrayList;
import java.util.Arrays;

import org.mariotaku.actionbarcompat.ActionMode;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.app.TwidereApplication;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.ParcelableUser;
import org.mariotaku.twidere.provider.TweetStore.Filters;
import org.mariotaku.twidere.util.ArrayUtils;
import org.mariotaku.twidere.util.ListUtils;
import org.mariotaku.twidere.util.NoDuplicatesList;
import org.mariotaku.twidere.util.ServiceInterface;

import android.content.BroadcastReceiver;
import android.content.ContentResolver;
Expand All @@ -30,6 +35,7 @@
public class MultiSelectActivity extends DualPaneActivity implements ActionMode.Callback {

private TwidereApplication mApplication;
private ServiceInterface mService;

private ActionMode mActionMode;

Expand All @@ -49,12 +55,13 @@ public void onReceive(Context context, Intent intent) {

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
final ArrayList<Object> selected_items = mApplication.getSelectedItems();
final NoDuplicatesList<Object> selected_items = mApplication.getSelectedItems();
switch (item.getItemId()) {
case MENU_REPLY: {
final Extractor extractor = new Extractor();
final Intent intent = new Intent(INTENT_ACTION_COMPOSE);
final Bundle bundle = new Bundle();
final String[] account_names = getAccountScreenNames(this);
final NoDuplicatesList<String> all_mentions = new NoDuplicatesList<String>();
for (final Object object : selected_items) {
if (object instanceof ParcelableStatus) {
Expand All @@ -66,10 +73,12 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
all_mentions.add(user.screen_name);
}
}
all_mentions.removeAll(Arrays.asList(account_names));
bundle.putStringArray(INTENT_KEY_MENTIONS, all_mentions.toArray(new String[all_mentions.size()]));
intent.putExtras(bundle);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
mode.finish();
break;
}
case MENU_MUTE_USER: {
Expand Down Expand Up @@ -99,18 +108,62 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
resolver.bulkInsert(uri, values_list.toArray(new ContentValues[values_list.size()]));
editor.putBoolean(PREFERENCE_KEY_ENABLE_FILTER, true).commit();
Toast.makeText(this, R.string.users_muted, Toast.LENGTH_SHORT).show();
mode.finish();
break;
}
case MENU_BLOCK: {
final int count = selected_items.size();
if (count >= 1) {
final Object obj = selected_items.get(0);
final long account_id;
final ArrayList<Long> ids_list = new ArrayList<Long>();
if (obj instanceof ParcelableUser) {
account_id = ((ParcelableUser) obj).account_id;
} else if (obj instanceof ParcelableStatus) {
account_id = ((ParcelableStatus) obj).account_id;
} else {
account_id = -1;
}
for (final Object selected_item : selected_items) {
if (selected_item instanceof ParcelableUser) {
ids_list.add(((ParcelableUser) selected_item).user_id);
} else if (selected_item instanceof ParcelableStatus) {
ids_list.add(((ParcelableStatus) selected_item).user_id);
}
}
if (account_id > 0) {
mService.createMultiBlock(account_id, ArrayUtils.fromList(ids_list));
}
}
mode.finish();
break;
}
case MENU_REPORT_SPAM: {
break;
}
}
if (item.getItemId() != R.id.more_submenu) {
if (mode != null) {
final int count = selected_items.size();
if (count >= 1) {
final Object obj = selected_items.get(0);
final long account_id;
final ArrayList<Long> ids_list = new ArrayList<Long>();
if (obj instanceof ParcelableUser) {
account_id = ((ParcelableUser) obj).account_id;
} else if (obj instanceof ParcelableStatus) {
account_id = ((ParcelableStatus) obj).account_id;
} else {
account_id = -1;
}
for (final Object selected_item : selected_items) {
if (selected_item instanceof ParcelableUser) {
ids_list.add(((ParcelableUser) selected_item).user_id);
} else if (selected_item instanceof ParcelableStatus) {
ids_list.add(((ParcelableStatus) selected_item).user_id);
}
}
if (account_id > 0) {
mService.reportMultiSpam(account_id, ArrayUtils.fromList(ids_list));
}
}
mode.finish();
break;
}
}
return true;
Expand All @@ -120,6 +173,7 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
@Override
public void onCreate(Bundle savedInstanceState) {
mApplication = getTwidereApplication();
mService = mApplication.getServiceInterface();
super.onCreate(savedInstanceState);
}

Expand Down

0 comments on commit 3349f6a

Please sign in to comment.