aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/SelectorActivity.kt16
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt5
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/views/AccountItem.kt71
4 files changed, 92 insertions, 2 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt b/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt
index b7b6b2d5..1e9fe6d3 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt
@@ -40,7 +40,7 @@ class FrostApp : Application() {
refWatcher = LeakCanary.install(this)
if (BuildConfig.DEBUG) {
Timber.plant(DebugTree())
- LeakCanary.enableDisplayLeakActivity(this)
+// LeakCanary.enableDisplayLeakActivity(this)
} else {
Fabric.with(this, Crashlytics(), Answers())
Timber.plant(CrashReportingTree())
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/SelectorActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/SelectorActivity.kt
index 5cbd08bc..84e5592c 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/SelectorActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/SelectorActivity.kt
@@ -1,10 +1,26 @@
package com.pitchedapps.frost
+import android.os.Bundle
import android.support.v7.app.AppCompatActivity
+import android.support.v7.widget.RecyclerView
+import butterknife.ButterKnife
+import com.mikepenz.fastadapter.FastAdapter
+import com.pitchedapps.frost.utils.bindView
+import com.pitchedapps.frost.views.AccountItem
/**
* Created by Allan Wang on 2017-06-04.
*/
class SelectorActivity : AppCompatActivity() {
+ val recycler: RecyclerView by bindView(R.id.selector_recycler)
+ val adapter = FastItemAdapter<AccountItem>()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_selector)
+ ButterKnife.bind(this)
+ recycler.adapter = adapter
+ adapter.addal
+ }
} \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt
index b2f29656..e48814cf 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt
@@ -36,8 +36,11 @@ data class CookieModel(@PrimaryKey var id: Long = Prefs.userIdDefault, var name:
fun loadFbCookie(id: Long): CookieModel? = (select from CookieModel::class where (CookieModel_Table.id eq id)).querySingle()
fun loadFbCookie(name: String): CookieModel? = (select from CookieModel::class where (CookieModel_Table.name eq name)).querySingle()
+/**
+ * Loads cookies sorted by name
+ */
fun loadFbCookiesAsync(callback: (cookies: List<CookieModel>) -> Unit) {
- (select from CookieModel::class).async().queryListResultCallback { _, tResult -> callback.invoke(tResult) }.execute()
+ (select from CookieModel::class).orderBy(CookieModel_Table.name, true).async().queryListResultCallback { _, tResult -> callback.invoke(tResult) }.execute()
}
fun saveFbCookie(cookie: CookieModel, callback: (() -> Unit)? = null) {
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/views/AccountItem.kt b/app/src/main/kotlin/com/pitchedapps/frost/views/AccountItem.kt
new file mode 100644
index 00000000..9d6099c6
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/views/AccountItem.kt
@@ -0,0 +1,71 @@
+package com.pitchedapps.frost.views
+
+import android.graphics.drawable.Drawable
+import android.support.v7.widget.AppCompatTextView
+import android.support.v7.widget.RecyclerView
+import android.view.View
+import android.widget.ImageView
+import butterknife.ButterKnife
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.DataSource
+import com.bumptech.glide.load.engine.GlideException
+import com.bumptech.glide.request.RequestListener
+import com.bumptech.glide.request.target.Target
+import com.mikepenz.fastadapter.items.AbstractItem
+import com.pitchedapps.frost.R
+import com.pitchedapps.frost.facebook.PROFILE_PICTURE_URL
+import com.pitchedapps.frost.utils.bindView
+
+/**
+ * Created by Allan Wang on 2017-06-05.
+ */
+class AccountItem(val id: Long, val name: String) : AbstractItem<AccountItem, AccountItem.ViewHolder>() {
+ constructor() : this(-1L, "")
+
+ override fun getType(): Int = R.id.item_account
+
+ override fun getViewHolder(v: View) = ViewHolder(v)
+
+ override fun getLayoutRes(): Int = R.layout.view_account
+
+ override fun bindView(viewHolder: ViewHolder, payloads: List<Any>) {
+ super.bindView(viewHolder, payloads)
+ with(viewHolder) {
+ text.visibility = View.INVISIBLE
+ if (id != -1L) {
+ text.text = name
+ Glide.with(itemView).load(PROFILE_PICTURE_URL(id)).listener(object : RequestListener<Drawable> {
+ override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
+ text.fadeIn()
+ return false
+ }
+
+ override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
+ text.fadeIn()
+ return false
+ }
+ }).into(image)
+ } else {
+ text.text = itemView.context.getString(R.string.add_account)
+ //todo add plus image
+ }
+ }
+ }
+
+ override fun unbindView(holder: ViewHolder) {
+ super.unbindView(holder)
+ with(holder) {
+ text.text = null
+ image.setImageDrawable(null)
+ }
+ }
+
+ class ViewHolder(v: View) : RecyclerView.ViewHolder(v) {
+ val image: ImageView by bindView(R.id.account_image)
+ val text: AppCompatTextView by bindView(R.id.account_text)
+
+ init {
+ ButterKnife.bind(v)
+ }
+ }
+} \ No newline at end of file