Implement rough home screen redesign

This commit is contained in:
Niels Andriesse
2019-12-17 14:27:59 +01:00
parent d4db46aeca
commit a10c056ac5
21 changed files with 292 additions and 15 deletions

View File

@@ -72,6 +72,7 @@ import org.thoughtcrime.securesms.loki.LokiPublicChatManager;
import org.thoughtcrime.securesms.loki.LokiRSSFeedPoller;
import org.thoughtcrime.securesms.loki.LokiUserDatabase;
import org.thoughtcrime.securesms.loki.MultiDeviceUtilities;
import org.thoughtcrime.securesms.loki.redesign.activities.HomeActivity;
import org.thoughtcrime.securesms.notifications.MessageNotifier;
import org.thoughtcrime.securesms.notifications.NotificationChannels;
import org.thoughtcrime.securesms.providers.BlobProvider;
@@ -651,7 +652,7 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
}
public void restartApplication() {
Intent intent = new Intent(this, ConversationListActivity.class);
Intent intent = new Intent(this, HomeActivity.class);
ComponentName componentName = intent.getComponent();
Intent mainIntent = Intent.makeRestartActivityTask(componentName);
this.startActivity(mainIntent);

View File

@@ -13,7 +13,8 @@ import android.support.v4.app.Fragment;
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.loki.redesign.LandingActivity;
import org.thoughtcrime.securesms.loki.redesign.activities.HomeActivity;
import org.thoughtcrime.securesms.loki.redesign.activities.LandingActivity;
import org.thoughtcrime.securesms.loki.SeedActivity;
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
import org.thoughtcrime.securesms.service.KeyCachingService;
@@ -199,7 +200,7 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
}
private Intent getConversationListIntent() {
return new Intent(this, ConversationListActivity.class);
return new Intent(this, HomeActivity.class);
}
private void initializeClearKeyReceiver() {

View File

@@ -0,0 +1,40 @@
package org.thoughtcrime.securesms.loki.redesign.activities
import android.content.Context
import android.database.Cursor
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.database.model.ThreadRecord
import org.thoughtcrime.securesms.loki.redesign.views.ConversationView
class ConversationAdapter(context: Context, cursor: Cursor) : CursorRecyclerViewAdapter<ConversationAdapter.ViewHolder>(context, cursor) {
private val threadDatabase = DatabaseFactory.getThreadDatabase(context)
var conversationClickListener: ConversationClickListener? = null
class ViewHolder(val view: ConversationView) : RecyclerView.ViewHolder(view)
override fun onCreateItemViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = ConversationView.get(context, parent)
view.setOnClickListener { conversationClickListener?.onConversationClick(view) }
view.setOnLongClickListener {
conversationClickListener?.onLongConversationClick(view)
true
}
return ViewHolder(view)
}
override fun onBindItemViewHolder(viewHolder: ViewHolder, cursor: Cursor) {
viewHolder.view.bind(getThread(cursor)!!)
}
private fun getThread(cursor: Cursor): ThreadRecord? {
return threadDatabase.readerFor(cursor).getCurrent()
}
}
interface ConversationClickListener {
fun onConversationClick(view: ConversationView)
fun onLongConversationClick(view: ConversationView)
}

View File

@@ -1,4 +1,4 @@
package org.thoughtcrime.securesms.loki.redesign
package org.thoughtcrime.securesms.loki.redesign.activities
import android.content.Intent
import android.os.Bundle

View File

@@ -0,0 +1,35 @@
package org.thoughtcrime.securesms.loki.redesign.activities
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_home.*
import network.loki.messenger.R
import org.thoughtcrime.securesms.ApplicationContext
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.util.TextSecurePreferences
class HomeActivity : PassphraseRequiredActionBarActivity {
constructor() : super()
override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) {
super.onCreate(savedInstanceState, isReady)
// Set content view
setContentView(R.layout.activity_home)
// Set title
supportActionBar!!.title = "Messages"
// Set up recycler view
val cursor = DatabaseFactory.getThreadDatabase(this).conversationList
recyclerView.adapter = ConversationAdapter(this, cursor)
recyclerView.layoutManager = LinearLayoutManager(this)
// Set up public chats and RSS feeds if needed
if (TextSecurePreferences.getLocalNumber(this) != null) {
val application = ApplicationContext.getInstance(this)
application.createDefaultPublicChatsIfNeeded()
application.createRSSFeedsIfNeeded()
application.lokiPublicChatManager.startPollersIfNeeded()
application.startRSSFeedPollersIfNeeded()
}
}
}

View File

@@ -1,4 +1,4 @@
package org.thoughtcrime.securesms.loki.redesign
package org.thoughtcrime.securesms.loki.redesign.activities
import android.content.Intent
import android.os.Bundle

View File

@@ -1,4 +1,4 @@
package org.thoughtcrime.securesms.loki.redesign
package org.thoughtcrime.securesms.loki.redesign.activities
import android.content.ClipData
import android.content.ClipboardManager

View File

@@ -1,4 +1,4 @@
package org.thoughtcrime.securesms.loki.redesign
package org.thoughtcrime.securesms.loki.redesign.activities
import android.content.Intent
import android.graphics.Typeface

View File

@@ -0,0 +1,35 @@
package org.thoughtcrime.securesms.loki.redesign.views
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.LinearLayout
import network.loki.messenger.R
import org.thoughtcrime.securesms.database.model.ThreadRecord
class ConversationView : LinearLayout {
// region Lifecycle
companion object {
fun get(context: Context, parent: ViewGroup?): ConversationView {
return LayoutInflater.from(context).inflate(R.layout.conversation_view, parent, false) as ConversationView
}
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
// endregion
// region Updating
fun bind(thread: ThreadRecord) {
}
// endregion
}

View File

@@ -1,4 +1,4 @@
package org.thoughtcrime.securesms.loki.redesign
package org.thoughtcrime.securesms.loki.redesign.views
import android.content.Context
import android.content.Context.LAYOUT_INFLATER_SERVICE