Skip to content

Commit

Permalink
version misaka.10032.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Tlaster committed Dec 1, 2016
1 parent 5970817 commit 68f3f1c
Show file tree
Hide file tree
Showing 16 changed files with 319 additions and 18 deletions.
5 changes: 3 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ android {
applicationId "moe.tlaster.openween"
minSdkVersion 21
targetSdkVersion 25
versionCode 3
versionName "misaka.10032.1"
versionCode 4
versionName "misaka.10032.2"
resValue "string", "tray__authority", "${applicationId}.tray"
manifestPlaceholders = [HOCKEYAPP_APP_ID: properties.getProperty("HOCKEYAPP_APP_ID")]

Expand Down Expand Up @@ -64,6 +64,7 @@ dependencies {
compile 'me.himanshusoni.chatmessageview:chat-message-view:1.0.3'
compile 'com.github.piasy:BigImageViewer:1.2.2'
compile 'com.github.piasy:GlideImageLoader:1.2.2'
compile 'com.github.varunest:sparkbutton:1.0.2'
testCompile 'junit:junit:4.12'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
Expand Down
52 changes: 49 additions & 3 deletions app/src/main/kotlin/moe/tlaster/openween/activity/UserActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,11 @@ import moe.tlaster.openween.common.bindView
import moe.tlaster.openween.common.helpers.JsonCallback
import moe.tlaster.openween.common.helpers.WeiboCardHelper
import moe.tlaster.openween.core.api.blocks.Blocks
import moe.tlaster.openween.core.api.favorites.Favorites
import moe.tlaster.openween.core.api.friendships.Friends
import moe.tlaster.openween.core.api.statuses.UserTimeline
import moe.tlaster.openween.core.api.user.User
import moe.tlaster.openween.core.model.favor.FavorListModel
import moe.tlaster.openween.core.model.status.MessageListModel
import moe.tlaster.openween.core.model.status.MessageModel
import moe.tlaster.openween.core.model.user.UserListModel
Expand All @@ -63,6 +65,8 @@ class UserActivity : SlidingActivity() {
private var mCircleImageView: CircleImageView? = null
val mStatsCard: View by bindView(R.id.user_stats_card)
val mWeiboCard: View by bindView(R.id.user_weibo_card)
val mLikeCard: View by bindView(R.id.user_like_card)
val mFavorCard: View by bindView(R.id.user_favor_card)
val mProgressBar: ProgressBar by bindView(R.id.user_progressbar)
val mLinearLayout: LinearLayout by bindView(R.id.user_information)
private var mMenu: Menu? = null
Expand All @@ -79,8 +83,10 @@ class UserActivity : SlidingActivity() {
.sizeDp(24))
setHeaderContent(headerView)
val userName = intent.extras.getString(getString(R.string.user_page_username_name))
mWeiboCard.findViewById(R.id.user_weibo_all).setOnClickListener { this.goAllWeiboList(it) }
mWeiboCard.findViewById(R.id.user_weibo_all_bottom).setOnClickListener{ this.goAllWeiboList(it) }
mWeiboCard.findViewById(R.id.user_weibo_all).setOnClickListener { this.goAllWeiboList(getString(R.string.weibo_list_type_status_name)) }
mWeiboCard.findViewById(R.id.user_weibo_all_bottom).setOnClickListener{ this.goAllWeiboList(getString(R.string.weibo_list_type_status_name)) }
mFavorCard.findViewById(R.id.user_favor_weibo_all).setOnClickListener { goAllWeiboList(getString(R.string.weibo_list_type_favor_name)) }
mFavorCard.findViewById(R.id.user_favor_weibo_all_bottom).setOnClickListener { goAllWeiboList(getString(R.string.weibo_list_type_favor_name)) }
User.getUser(userName, object : JsonCallback<UserModel>() {
override fun onError(call: Call, e: Exception, id: Int) {
Toast.makeText(this@UserActivity, "载入失败", Toast.LENGTH_SHORT).show()
Expand All @@ -96,11 +102,41 @@ class UserActivity : SlidingActivity() {
initMenu()
initUser()
initWeibo()
if (mUser?.id!! == StaticResource.uid) {
initFavor()
}
mProgressBar.visibility = View.GONE
}
})
}

private fun initFavor() {
Favorites.getFavorList(count = 3, callback = object : JsonCallback<FavorListModel>() {
override fun onResponse(response: FavorListModel, id: Int) {
if (isDestroyed) return
if (response.favorites!!.isNotEmpty()){
WeiboCardHelper.setData(mFavorCard.findViewById(R.id.user_favor_weibo_1), response.favorites!![0].status!!, this@UserActivity, true)
TransitionManager.beginDelayedTransition(mLinearLayout, Slide(Gravity.BOTTOM))
mFavorCard.visibility = View.VISIBLE
} else
mFavorCard.visibility = View.GONE
if (response.favorites!!.size > 1)
WeiboCardHelper.setData(mFavorCard.findViewById(R.id.user_favor_weibo_2), response.favorites!![1].status!!, this@UserActivity, true)
else
mFavorCard.findViewById(R.id.user_favor_weibo_2).visibility = View.GONE
if (response.favorites!!.size > 2)
WeiboCardHelper.setData(mFavorCard.findViewById(R.id.user_favor_weibo_3), response.favorites!![2].status!!, this@UserActivity, true)
else
mFavorCard.findViewById(R.id.user_favor_weibo_3).visibility = View.GONE
}

override fun onError(call: Call?, e: Exception?, id: Int) {

}

})
}

private fun initMenu() {
if (mUser!!.id === StaticResource.uid) {
mMenu!!.clear()
Expand All @@ -115,9 +151,10 @@ class UserActivity : SlidingActivity() {
}
}

private fun goAllWeiboList(view: View) {
private fun goAllWeiboList(type: String) {
val intent = Intent(this, WeiboListActivity::class.java)
intent.putExtra(getString(R.string.weibo_list_user_id_name), mUser!!.id)
intent.putExtra(getString(R.string.weibo_list_type_name), type)
startActivity(intent)
}

Expand All @@ -130,6 +167,15 @@ class UserActivity : SlidingActivity() {
override fun onResponse(response: MessageListModel, id: Int) {
if (isDestroyed) return
if (response.statuses!!.isNotEmpty()) {
val like = response.statuses?.filter { it.user?.id!! != mUser?.id!! }?.firstOrNull()
if (like != null) {
TransitionManager.beginDelayedTransition(mLinearLayout, Slide(Gravity.BOTTOM))
WeiboCardHelper.setData(mLikeCard.findViewById(R.id.user_like_weibo_1), like, this@UserActivity)
mLikeCard.visibility = View.VISIBLE
response.statuses = response.statuses!! - like
}
}
if (response.statuses!!.isNotEmpty()){
WeiboCardHelper.setData(mWeiboCard.findViewById(R.id.user_weibo_1), response.statuses!![0], this@UserActivity, true)
TransitionManager.beginDelayedTransition(mLinearLayout, Slide(Gravity.BOTTOM))
mWeiboCard.visibility = View.VISIBLE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,21 @@ import android.os.Bundle
import android.widget.FrameLayout

import moe.tlaster.openween.R
import moe.tlaster.openween.fragment.user.Favorite
import moe.tlaster.openween.fragment.user.Timeline

class WeiboListActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_weibo_list)
val fragmentTransaction = supportFragmentManager.beginTransaction()
val timeline = Timeline.create(intent.extras.getLong(getString(R.string.weibo_list_user_id_name)))
fragmentTransaction.add(R.id.weibo_list_fragment_container, timeline)
if (intent.extras.getString(getString(R.string.weibo_list_type_name)) == getString(R.string.weibo_list_type_status_name)) {
val timeline = Timeline.create(intent.extras.getLong(getString(R.string.weibo_list_user_id_name)))
fragmentTransaction.add(R.id.weibo_list_fragment_container, timeline)
} else if (intent.extras.getString(getString(R.string.weibo_list_type_name)) == getString(R.string.weibo_list_type_favor_name)) {
val favorite = Favorite.create(intent.extras.getLong(getString(R.string.weibo_list_user_id_name)))
fragmentTransaction.add(R.id.weibo_list_fragment_container, favorite)
}
fragmentTransaction.commit()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import android.widget.TextView

import com.bumptech.glide.Glide
import com.jaeger.ninegridimageview.NineGridImageView
import com.varunest.sparkbutton.SparkButton

import java.util.Arrays
import java.util.HashSet
Expand All @@ -22,10 +23,14 @@ import moe.tlaster.openween.activity.UserActivity
import moe.tlaster.openween.adapter.WeiboImageAdapter
import moe.tlaster.openween.common.controls.WeiboTextBlock
import moe.tlaster.openween.common.entities.PostWeiboType
import moe.tlaster.openween.core.api.attitudes.Attitudes
import moe.tlaster.openween.core.api.favorites.Favorites
import moe.tlaster.openween.core.model.BaseModel
import moe.tlaster.openween.core.model.attitude.AttitudeModel
import moe.tlaster.openween.core.model.comment.CommentModel
import moe.tlaster.openween.core.model.favor.FavorModel
import moe.tlaster.openween.core.model.status.MessageModel
import okhttp3.Call

/**
* Created by Asahi on 2016/10/27.
Expand Down Expand Up @@ -68,12 +73,40 @@ internal object WeiboCardHelper {
i.putExtra(context.getString(R.string.post_weibo_id_name), baseModel.id)
context.startActivity(i)
}
(weiboAction.findViewById(R.id.favor_spark_button) as SparkButton).setChecked(baseModel.isFavorited)
(weiboAction.findViewById(R.id.like_spark_button) as SparkButton).setEventListener { imageView, b ->
if (b) {
Attitudes.like(id = baseModel.id, callback = object : JsonCallback<String>() {
override fun onResponse(response: String?, id: Int) { }
override fun onError(call: Call?, e: Exception?, id: Int) { }
})
} else {
Attitudes.unLike(id = baseModel.id, callback = object : JsonCallback<String>() {
override fun onResponse(response: String?, id: Int) { }
override fun onError(call: Call?, e: Exception?, id: Int) { }
})
}
}
(weiboAction.findViewById(R.id.favor_spark_button) as SparkButton).setEventListener { imageView, b ->
if (b) {
Favorites.addFavor(baseModel.id, callback = object : JsonCallback<FavorModel>() {
override fun onResponse(response: FavorModel?, id: Int) { }
override fun onError(call: Call?, e: Exception?, id: Int) { }
})
} else {
Favorites.removeFavor(baseModel.id, callback = object : JsonCallback<FavorModel>() {
override fun onResponse(response: FavorModel?, id: Int) { }
override fun onError(call: Call?, e: Exception?, id: Int) { }
})
}
}
} else if (baseModel is CommentModel) {
baseView.findViewById(R.id.comment).visibility = View.VISIBLE
baseView.findViewById(R.id.weibo_action).visibility = View.GONE
if (isEnableRepost) {
weiboRepostLinear.visibility = View.VISIBLE
setWeiboContent(baseView.findViewById(R.id.weibo_repost_container), baseModel.status as MessageModel, false, context)
if (baseModel.status != null)
setWeiboContent(baseView.findViewById(R.id.weibo_repost_container), baseModel.status!!, false, context)
} else {
weiboRepostLinear.visibility = View.GONE
}
Expand All @@ -83,7 +116,8 @@ internal object WeiboCardHelper {
baseView.findViewById(R.id.weibo_action).visibility = View.GONE
if (isEnableRepost) {
weiboRepostLinear.visibility = View.VISIBLE
setWeiboContent(baseView.findViewById(R.id.weibo_repost_container), baseModel.status as MessageModel, enableImage = false, context = context)
if (baseModel.status != null)
setWeiboContent(baseView.findViewById(R.id.weibo_repost_container), baseModel.status!!, enableImage = false, context = context)
} else {
weiboRepostLinear.visibility = View.GONE
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import moe.tlaster.openween.common.helpers.JsonCallback
* Created by Tlaster on 2016/9/6.
*/
object Favorites {
fun getFavorList(count: Int, page: Int, callback: JsonCallback<FavorListModel>) {
fun getFavorList(count: Int = 20, page: Int = 1, callback: JsonCallback<FavorListModel>) {
val param = HashMap<String, String>()
param.put("count", count.toString())
param.put("page", page.toString())
Expand Down
58 changes: 58 additions & 0 deletions app/src/main/kotlin/moe/tlaster/openween/fragment/user/Favorite.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package moe.tlaster.openween.fragment.user

import android.os.Bundle
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.mikepenz.google_material_typeface_library.GoogleMaterial
import com.mikepenz.iconics.typeface.IIcon
import moe.tlaster.openween.adapter.BaseModelAdapter
import moe.tlaster.openween.core.api.favorites.Favorites
import moe.tlaster.openween.core.model.favor.FavorListModel
import moe.tlaster.openween.core.model.favor.FavorModel
import moe.tlaster.openween.core.model.status.MessageModel
import moe.tlaster.openween.fragment.WeiboListBase

/**
* Created by Asahi on 16/12/01.
*/
class Favorite(override val icon: IIcon = GoogleMaterial.Icon.gmd_star) : WeiboListBase<MessageModel>() {

private var mID: Long = 0

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mID = arguments.getLong("id")
}


override fun initAdapter(): BaseQuickAdapter<MessageModel, BaseViewHolder> {
return BaseModelAdapter()
}

override fun loadMoreOverride(callback: Callback<List<MessageModel>>) {
Favorites.getFavorList(mLoadCount, mPage++, object : WeiboListCallback<FavorListModel>() {
override fun onResponse(response: FavorListModel, id: Int) {
callback.onResponse(response.favorites?.map { it.status!! }!!, response.totalNumber)
}
})
}

override fun refreshOverride(callback: Callback<List<MessageModel>>) {
Favorites.getFavorList(mLoadCount, mPage++, object : WeiboListCallback<FavorListModel>() {
override fun onResponse(response: FavorListModel, id: Int) {
callback.onResponse(response.favorites?.map { it.status!! }!!, response.totalNumber)
}
})
}

companion object {

fun create(id: Long): Favorite {
val favorite = Favorite()
val bundle = Bundle()
bundle.putLong("id", id)
favorite.arguments = bundle
return favorite
}
}
}
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_star_gray_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@android:color/darker_gray"
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_star_yellow_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/md_yellow_600"
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_thumb_up_gray_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@android:color/darker_gray"
android:pathData="M1,21h4L5,9L1,9v12zM23,10c0,-1.1 -0.9,-2 -2,-2h-6.31l0.95,-4.57 0.03,-0.32c0,-0.41 -0.17,-0.79 -0.44,-1.06L14.17,1 7.59,7.59C7.22,7.95 7,8.45 7,9v10c0,1.1 0.9,2 2,2h9c0.83,0 1.54,-0.5 1.84,-1.22l3.02,-7.05c0.09,-0.23 0.14,-0.47 0.14,-0.73v-1.91l-0.01,-0.01L23,10z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_thumb_up_red_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/md_red_400"
android:pathData="M1,21h4L5,9L1,9v12zM23,10c0,-1.1 -0.9,-2 -2,-2h-6.31l0.95,-4.57 0.03,-0.32c0,-0.41 -0.17,-0.79 -0.44,-1.06L14.17,1 7.59,7.59C7.22,7.95 7,8.45 7,9v10c0,1.1 0.9,2 2,2h9c0.83,0 1.54,-0.5 1.84,-1.22l3.02,-7.05c0.09,-0.23 0.14,-0.47 0.14,-0.73v-1.91l-0.01,-0.01L23,10z"/>
</vector>
3 changes: 3 additions & 0 deletions app/src/main/res/layout/activity_user.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:paddingBottom="@dimen/dp_10"
android:orientation="vertical"
android:id="@+id/user_information"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include android:visibility="gone" layout="@layout/user_stats_card" android:id="@+id/user_stats_card"/>
<include android:visibility="gone" layout="@layout/user_weibo_card" android:id="@+id/user_weibo_card"/>
<include android:visibility="gone" layout="@layout/user_like_card" android:id="@+id/user_like_card"/>
<include android:visibility="gone" layout="@layout/user_favor_card" android:id="@+id/user_favor_card"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
Loading

0 comments on commit 68f3f1c

Please sign in to comment.