mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-25 12:47:20 +00:00
WIP
This commit is contained in:
parent
c3f1e6d72a
commit
9f4f0d4f4b
@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@drawable/default_session_background">
|
android:background="@drawable/default_session_background">
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
<!-- Session -->
|
<!-- Session -->
|
||||||
<color name="accent">#00F782</color>
|
<color name="accent">#00F782</color>
|
||||||
<color name="text">#FFFFFF</color>
|
<color name="text">#FFFFFF</color>
|
||||||
|
<color name="destructive">#FF453A</color>
|
||||||
<color name="unimportant">#D8D8D8</color>
|
<color name="unimportant">#D8D8D8</color>
|
||||||
<color name="border">#979797</color>
|
<color name="border">#979797</color>
|
||||||
<color name="cell_background">#1B1B1B</color>
|
<color name="cell_background">#1B1B1B</color>
|
||||||
|
@ -8,7 +8,6 @@ import kotlinx.android.synthetic.main.activity_display_name_v2.*
|
|||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
import org.thoughtcrime.securesms.ApplicationContext
|
import org.thoughtcrime.securesms.ApplicationContext
|
||||||
import org.thoughtcrime.securesms.BaseActionBarActivity
|
import org.thoughtcrime.securesms.BaseActionBarActivity
|
||||||
import org.thoughtcrime.securesms.ConversationListActivity
|
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||||
import org.thoughtcrime.securesms.loki.redesign.utilities.push
|
import org.thoughtcrime.securesms.loki.redesign.utilities.push
|
||||||
import org.thoughtcrime.securesms.loki.redesign.utilities.setUpActionBarSessionLogo
|
import org.thoughtcrime.securesms.loki.redesign.utilities.setUpActionBarSessionLogo
|
||||||
@ -54,7 +53,7 @@ class DisplayNameActivity : BaseActionBarActivity() {
|
|||||||
val servers = DatabaseFactory.getLokiThreadDatabase(this).getAllPublicChatServers()
|
val servers = DatabaseFactory.getLokiThreadDatabase(this).getAllPublicChatServers()
|
||||||
servers.forEach { publicChatAPI.setDisplayName(displayName, it) }
|
servers.forEach { publicChatAPI.setDisplayName(displayName, it) }
|
||||||
}
|
}
|
||||||
val intent = Intent(this, ConversationListActivity::class.java)
|
val intent = Intent(this, HomeActivity::class.java)
|
||||||
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||||
push(intent)
|
push(intent)
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
package org.thoughtcrime.securesms.loki.redesign.activities
|
package org.thoughtcrime.securesms.loki.redesign.activities
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.arch.lifecycle.Observer
|
import android.arch.lifecycle.Observer
|
||||||
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.database.Cursor
|
import android.database.Cursor
|
||||||
|
import android.graphics.BitmapFactory
|
||||||
|
import android.graphics.Canvas
|
||||||
|
import android.graphics.Paint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v4.app.LoaderManager
|
import android.support.v4.app.LoaderManager
|
||||||
import android.support.v4.content.Loader
|
import android.support.v4.content.Loader
|
||||||
import android.support.v7.widget.LinearLayoutManager
|
import android.support.v7.widget.LinearLayoutManager
|
||||||
|
import android.support.v7.widget.RecyclerView
|
||||||
|
import android.support.v7.widget.helper.ItemTouchHelper
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import kotlinx.android.synthetic.main.activity_home.*
|
import kotlinx.android.synthetic.main.activity_home.*
|
||||||
@ -16,11 +23,13 @@ import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
|||||||
import org.thoughtcrime.securesms.conversation.ConversationActivity
|
import org.thoughtcrime.securesms.conversation.ConversationActivity
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||||
import org.thoughtcrime.securesms.database.model.ThreadRecord
|
import org.thoughtcrime.securesms.database.model.ThreadRecord
|
||||||
|
import org.thoughtcrime.securesms.loki.getColorWithID
|
||||||
import org.thoughtcrime.securesms.loki.redesign.utilities.push
|
import org.thoughtcrime.securesms.loki.redesign.utilities.push
|
||||||
import org.thoughtcrime.securesms.loki.redesign.views.ConversationView
|
import org.thoughtcrime.securesms.loki.redesign.views.ConversationView
|
||||||
import org.thoughtcrime.securesms.mms.GlideApp
|
import org.thoughtcrime.securesms.mms.GlideApp
|
||||||
import org.thoughtcrime.securesms.mms.GlideRequests
|
import org.thoughtcrime.securesms.mms.GlideRequests
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListener {
|
class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListener {
|
||||||
private lateinit var glide: GlideRequests
|
private lateinit var glide: GlideRequests
|
||||||
@ -43,6 +52,7 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
|
|||||||
homeAdapter.conversationClickListener = this
|
homeAdapter.conversationClickListener = this
|
||||||
recyclerView.adapter = homeAdapter
|
recyclerView.adapter = homeAdapter
|
||||||
recyclerView.layoutManager = LinearLayoutManager(this)
|
recyclerView.layoutManager = LinearLayoutManager(this)
|
||||||
|
ItemTouchHelper(SwipeCallback(this)).attachToRecyclerView(recyclerView)
|
||||||
// This is a workaround for the fact that CursorRecyclerViewAdapter doesn't actually auto-update (even though it says it will)
|
// This is a workaround for the fact that CursorRecyclerViewAdapter doesn't actually auto-update (even though it says it will)
|
||||||
LoaderManager.getInstance(this).restartLoader(0, null, object : LoaderManager.LoaderCallbacks<Cursor> {
|
LoaderManager.getInstance(this).restartLoader(0, null, object : LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
|
||||||
@ -120,5 +130,38 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
|
|||||||
val intent = Intent(this, JoinPublicChatActivity::class.java)
|
val intent = Intent(this, JoinPublicChatActivity::class.java)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class SwipeCallback(val context: Context) : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
|
||||||
|
|
||||||
|
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
|
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
|
||||||
|
// TODO: Implement
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onChildDraw(c: Canvas, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dx: Float, dy: Float, actionState: Int, isCurrentlyActive: Boolean) {
|
||||||
|
if (actionState != ItemTouchHelper.ACTION_STATE_SWIPE) {
|
||||||
|
super.onChildDraw(c, recyclerView, viewHolder, dx, dy, actionState, isCurrentlyActive)
|
||||||
|
} else {
|
||||||
|
val itemView = viewHolder.itemView
|
||||||
|
val alpha = 1.0f - abs(dx) / viewHolder.itemView.width.toFloat()
|
||||||
|
if (dx < 0) {
|
||||||
|
val backgroundPaint = Paint()
|
||||||
|
backgroundPaint.color = context.resources.getColorWithID(R.color.destructive, context.theme)
|
||||||
|
c.drawRect(itemView.right.toFloat() - abs(dx), itemView.top.toFloat(), itemView.right.toFloat(), itemView.bottom.toFloat(), backgroundPaint)
|
||||||
|
val icon = BitmapFactory.decodeResource(context.resources, R.drawable.ic_trash_filled_32)
|
||||||
|
val iconPaint = Paint()
|
||||||
|
val left = itemView.right.toFloat() - abs(dx) + context.resources.getDimension(R.dimen.medium_spacing)
|
||||||
|
val top = itemView.top.toFloat() + (itemView.bottom.toFloat() - itemView.top.toFloat() - icon.height) / 2
|
||||||
|
c.drawBitmap(icon, left, top, iconPaint)
|
||||||
|
}
|
||||||
|
viewHolder.itemView.alpha = alpha
|
||||||
|
viewHolder.itemView.translationX = dx
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// endregion
|
// endregion
|
||||||
}
|
}
|
@ -33,16 +33,10 @@ class ScanQRCodeFragmentV2 : Fragment() {
|
|||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
scanningThread.setScanListener(scanListener)
|
|
||||||
cameraView.onResume()
|
cameraView.onResume()
|
||||||
cameraView.setPreviewCallback(scanningThread)
|
cameraView.setPreviewCallback(scanningThread)
|
||||||
scanningThread.start()
|
scanningThread.start()
|
||||||
}
|
scanningThread.setScanListener(scanListener)
|
||||||
|
|
||||||
override fun onPause() {
|
|
||||||
super.onPause()
|
|
||||||
this.cameraView.onPause()
|
|
||||||
this.scanningThread.stopScanning()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onConfigurationChanged(newConfiguration: Configuration) {
|
override fun onConfigurationChanged(newConfiguration: Configuration) {
|
||||||
@ -55,4 +49,10 @@ class ScanQRCodeFragmentV2 : Fragment() {
|
|||||||
cameraView.onResume()
|
cameraView.onResume()
|
||||||
cameraView.setPreviewCallback(scanningThread)
|
cameraView.setPreviewCallback(scanningThread)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onPause() {
|
||||||
|
super.onPause()
|
||||||
|
this.cameraView.onPause()
|
||||||
|
this.scanningThread.stopScanning()
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user