aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-09-15 18:40:47 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-09-15 18:40:47 +0900
commit897cdb295354cf8d8806270302cd7697cd76c54e (patch)
treec9a1a35c37a5230d2f0b118e74dbcbb378b935dd /app/src/main/java
parent18a0f6c1d7795c3f6fe0667ece80ebcd17b3bb95 (diff)
downloadSmileEssence-897cdb295354cf8d8806270302cd7697cd76c54e.tar.gz
データバインディングを使い始めた
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/entity/Account.java4
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java64
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java22
5 files changed, 58 insertions, 36 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java
index 13c21d0f..ad19ae61 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java
@@ -106,7 +106,7 @@ public class EditCommandActivity extends Activity {
@Override
protected void onDestroy() {
for (int i = 0; i < adapter.getCount(); i++) {
- CheckBoxModel checkBoxModel = (CheckBoxModel) adapter.getItem(i);
+ CheckBoxModel checkBoxModel = adapter.getItem(i);
Command command = editedCommands.get(i);
CommandSetting.setVisible(command.getKey(), checkBoxModel.isChecked());
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Account.java b/app/src/main/java/net/lacolaco/smileessence/entity/Account.java
index d5cc6b1b..99a78a5a 100644
--- a/app/src/main/java/net/lacolaco/smileessence/entity/Account.java
+++ b/app/src/main/java/net/lacolaco/smileessence/entity/Account.java
@@ -140,7 +140,7 @@ public class Account extends Model {
}
}
- public void fetchTweet(long statusId, Consumer<Tweet> callback, boolean forceRetrieve) {
+ public void fetchTweet(long statusId, boolean forceRetrieve, Consumer<Tweet> callback) {
Tweet tweet = Tweet.fetch(statusId);
if (forceRetrieve || tweet == null) {
new ShowStatusTask(getTwitter(), statusId) {
@@ -154,7 +154,7 @@ public class Account extends Model {
}
}
public void fetchTweet(long statusId, Consumer<Tweet> callback) {
- fetchTweet(statusId, callback, false);
+ fetchTweet(statusId, false, callback);
}
public TwitterTask<Tweet> tryGetStatus(long statusID, final StatusCallback callback) {
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java
index 16691238..bfdacce8 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java
@@ -82,7 +82,7 @@ public class CustomListAdapter<T extends IViewModel> extends BaseAdapter {
// --------------------- Interface Adapter ---------------------
@Override
- public Object getItem(int position) {
+ public T getItem(int position) {
return frozenList.get(position);
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java
index 08b3ad7e..015f206f 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java
@@ -25,35 +25,37 @@
package net.lacolaco.smileessence.viewmodel;
import android.app.Activity;
+import android.databinding.*;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
+import net.lacolaco.smileessence.BR;
import net.lacolaco.smileessence.R;
+import net.lacolaco.smileessence.databinding.MenuItemCheckboxBinding;
public class CheckBoxModel implements IViewModel {
// ------------------------------ FIELDS ------------------------------
- private final String text;
- private boolean checked;
+ private final CheckedState state;
// --------------------------- CONSTRUCTORS ---------------------------
- public CheckBoxModel(String text, boolean isChecked) {
- this.text = text;
- checked = isChecked;
+ public CheckBoxModel(String _text, boolean _checked) {
+ state = new CheckedState(_text, _checked);
}
// --------------------- GETTER / SETTER METHODS ---------------------
public boolean isChecked() {
- return checked;
+ return state.isChecked();
}
- public void setChecked(boolean checked) {
- this.checked = checked;
+ public void setChecked(boolean _checked) {
+ state.setChecked(_checked);
}
// ------------------------ INTERFACE METHODS ------------------------
@@ -64,17 +66,43 @@ public class CheckBoxModel implements IViewModel {
@Override
public View getView(Activity activity, LayoutInflater inflater, View convertedView) {
if (convertedView == null) {
- convertedView = inflater.inflate(R.layout.menu_item_checkbox, null);
+ MenuItemCheckboxBinding binding = MenuItemCheckboxBinding.inflate(inflater, null, false);
+ convertedView = binding.getRoot();
+ convertedView.setTag(binding);
}
- CheckBox checkBox = (CheckBox) convertedView.findViewById(R.id.checkBox_menuItem);
- checkBox.setText(this.text);
- checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- CheckBoxModel.this.checked = isChecked;
- }
- });
- checkBox.setChecked(checked);
+
+ MenuItemCheckboxBinding binding = (MenuItemCheckboxBinding) convertedView.getTag();
+ binding.setCheckedState(state);
return convertedView;
}
+
+ public static class CheckedState extends BaseObservable {
+ private String text;
+ private boolean checked;
+
+ CheckedState(String _text, boolean _checked) {
+ text = _text;
+ checked = _checked;
+ }
+
+ @Bindable
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ notifyPropertyChanged(BR.text);
+ }
+
+ @Bindable
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ notifyPropertyChanged(BR.checked);
+ }
+ }
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
index b6c640b5..5f1f2e8c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java
@@ -96,13 +96,10 @@ public class MessageViewModel implements IViewModel {
int theme = ((MainActivity) activity).getThemeIndex();
NetworkImageView icon = (NetworkImageView) convertedView.findViewById(R.id.imageview_status_icon);
ImageCache.getInstance().setImageToView(directMessage.getSender().getProfileImageUrl(), icon);
- icon.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- UserDetailDialogFragment dialogFragment = new UserDetailDialogFragment();
- dialogFragment.setUserID(directMessage.getSender().getId());
- DialogHelper.showDialog(activity, dialogFragment);
- }
+ icon.setOnClickListener(v -> {
+ UserDetailDialogFragment dialogFragment = new UserDetailDialogFragment();
+ dialogFragment.setUserID(directMessage.getSender().getId());
+ DialogHelper.showDialog(activity, dialogFragment);
});
TextView header = (TextView) convertedView.findViewById(R.id.textview_status_header);
header.setTextSize(textSize);
@@ -123,13 +120,10 @@ public class MessageViewModel implements IViewModel {
favorited.setVisibility(View.GONE);
int colorBgMessage = Themes.getStyledColor(activity, theme, R.attr.color_message_bg_normal, 0);
convertedView.setBackgroundColor(colorBgMessage);
- convertedView.setOnClickListener(new ListItemClickListener(activity, new Runnable() {
- @Override
- public void run() {
- MessageDetailDialogFragment dialogFragment = new MessageDetailDialogFragment();
- dialogFragment.setMessageID(directMessage.getId());
- DialogHelper.showDialog(activity, dialogFragment);
- }
+ convertedView.setOnClickListener(new ListItemClickListener(activity, () -> {
+ MessageDetailDialogFragment dialogFragment = new MessageDetailDialogFragment();
+ dialogFragment.setMessageID(directMessage.getId());
+ DialogHelper.showDialog(activity, dialogFragment);
}));
return convertedView;
}