diff options
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java deleted file mode 100644 index ae53d0fb..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2012-2014 lacolaco.net - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package net.lacolaco.smileessence.viewmodel; - -import android.app.Activity; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; -import com.android.volley.toolbox.NetworkImageView; -import net.lacolaco.smileessence.Application; -import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.data.ImageCache; -import net.lacolaco.smileessence.entity.RBinding; -import net.lacolaco.smileessence.entity.Tweet; -import net.lacolaco.smileessence.entity.User; -import net.lacolaco.smileessence.preference.UserPreferenceHelper; -import net.lacolaco.smileessence.util.StringUtils; -import net.lacolaco.smileessence.util.UIObserverBundle; -import net.lacolaco.smileessence.view.DialogHelper; -import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment; -import net.lacolaco.smileessence.view.listener.ListItemClickListener; - -import java.lang.ref.WeakReference; -import java.util.Date; - -public class EventViewModel implements IViewModel { - - // ------------------------------ FIELDS ------------------------------ - - private EnumEvent event; - private User source; - private Tweet targetObject; - private Date createdAt; - - // --------------------------- CONSTRUCTORS --------------------------- - - public EventViewModel(EnumEvent event, User source) { - this(event, source, null); - } - - public EventViewModel(EnumEvent event, User source, Tweet tweet) { - this.event = event; - this.source = source; - this.createdAt = new Date(); - - if (tweet != null) { - if (event == EnumEvent.RETWEETED) { - this.targetObject = tweet.getRetweetedTweet(); - } else { - this.targetObject = tweet; - } - } - } - - // --------------------- GETTER / SETTER METHODS --------------------- - - public Date getCreatedAt() { - return createdAt; - } - - public boolean isStatusEvent() { - return targetObject != null; - } - - // ------------------------ INTERFACE METHODS ------------------------ - - - // --------------------- Interface IViewModel --------------------- - - private void updateViewUser(View convertedView) { - NetworkImageView icon = (NetworkImageView) convertedView.findViewById(R.id.imageview_status_icon); - String iconUrl = source.getProfileImageUrlOriginal(); - ImageCache.getInstance().setImageToView(iconUrl, icon); - - TextView header = (TextView) convertedView.findViewById(R.id.textview_status_header); - header.setText(getFormattedString()); - } - - @Override - public View getView(final Activity activity, LayoutInflater inflater, View convertedView) { - if (convertedView == null) { - convertedView = inflater.inflate(R.layout.list_item_status, null); - } - UIObserverBundle bundle = (UIObserverBundle) convertedView.getTag(); - if (bundle != null) { - bundle.detachAll(); - } else { - bundle = new UIObserverBundle(); - convertedView.setTag(bundle); - } - - int textSize = UserPreferenceHelper.getInstance().getTextSize(); - - TextView header = (TextView) convertedView.findViewById(R.id.textview_status_header); - header.setTextSize(textSize); - - updateViewUser(convertedView); - - TextView content = (TextView) convertedView.findViewById(R.id.textview_status_text); - content.setTextSize(textSize); - content.setText(isStatusEvent() ? targetObject.getText() : ""); - TextView footer = (TextView) convertedView.findViewById(R.id.textview_status_footer); - footer.setTextSize(textSize - 2); - footer.setText(StringUtils.dateToString(getCreatedAt())); - ImageView favorited = (ImageView) convertedView.findViewById(R.id.imageview_status_favorited); - favorited.setVisibility(View.GONE); - convertedView.setOnClickListener(new ListItemClickListener(activity, () -> { - UserDetailDialogFragment fragment = new UserDetailDialogFragment(); - fragment.setUserID(source.getId()); - DialogHelper.showDialog(activity, fragment); - })); - - final WeakReference<View> weakView = new WeakReference<>(convertedView); - bundle.attach(source, changes -> { - View strongView = weakView.get(); - if (strongView != null && changes.contains(RBinding.BASIC)) - updateViewUser(strongView); - }); - - return convertedView; - } - - // -------------------------- OTHER METHODS -------------------------- - - public String getFormattedString() { - return Application.getInstance().getString(event.getTextFormatResourceID(), source.getScreenName()); - } - - public enum EnumEvent { - - FAVORITED(R.string.format_event_favorited), - UNFAVORITED(R.string.format_event_unfavorited), - RETWEETED(R.string.format_event_retweeted), - MENTIONED(R.string.format_event_mentioned), - FOLLOWED(R.string.format_event_followed), - BLOCKED(R.string.format_event_blocked), - UNBLOCKED(R.string.format_event_unblocked), - RECEIVE_MESSAGE(R.string.format_event_message); - - // ------------------------------ FIELDS ------------------------------ - - private int textFormatResourceID; - - // --------------------------- CONSTRUCTORS --------------------------- - - EnumEvent(int textFormatResourceID) { - this.textFormatResourceID = textFormatResourceID; - } - - // --------------------- GETTER / SETTER METHODS --------------------- - - public int getTextFormatResourceID() { - return textFormatResourceID; - } - } -} |