This commit is contained in:
Paul Schaub 2019-06-29 01:02:19 +02:00
parent a82acb5777
commit 188f2706c6
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
11 changed files with 58 additions and 27 deletions

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mercury_im.messenger">
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />

View File

@ -62,5 +62,4 @@ public class RepositoryModule {
ContactAndEntityRepository provideContactAndEntityRepository(ContactAndEntityDao dao) {
return new IContactAndEntityRepository(dao);
}
}

View File

@ -5,10 +5,9 @@ import org.mercury_im.messenger.persistence.room.AppDatabase;
import org.mercury_im.messenger.persistence.room.dao.AccountDao;
import org.mercury_im.messenger.persistence.room.dao.ChatDao;
import org.mercury_im.messenger.persistence.room.dao.ContactAndEntityDao;
import org.mercury_im.messenger.persistence.room.dao.ContactDao;
import org.mercury_im.messenger.persistence.room.dao.EntityDao;
import org.mercury_im.messenger.persistence.room.dao.MessageDao;
import org.mercury_im.messenger.persistence.room.dao.ContactDao;
import org.w3c.dom.Entity;
import javax.inject.Inject;
import javax.inject.Singleton;

View File

@ -1,31 +1,21 @@
package org.mercury_im.messenger.ui;
import androidx.lifecycle.Observer;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.annotation.Nullable;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.os.IBinder;
import android.view.Menu;
import android.view.MenuItem;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.Observer;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import org.mercury_im.messenger.MercuryImApplication;
import org.mercury_im.messenger.R;
import org.mercury_im.messenger.persistence.model.AccountModel;
import org.mercury_im.messenger.persistence.room.AppDatabase;
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
import org.mercury_im.messenger.persistence.repository.AccountRepository;
import org.mercury_im.messenger.persistence.repository.ContactRepository;
import org.mercury_im.messenger.service.XmppConnectionService;
import org.mercury_im.messenger.ui.chat.ChatActivity;
import org.mercury_im.messenger.ui.login.AccountsActivity;
import org.mercury_im.messenger.ui.login.LoginActivity;
import org.mercury_im.messenger.ui.settings.SettingsActivity;

View File

@ -0,0 +1,38 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle"
tools:context="org.mercury_im.messenger.ui.log.LogEntryListActivity">
<!--
This layout is a two-pane layout for the LogEntries
master/detail flow.
-->
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/logentry_list"
android:name="org.mercury_im.messenger.ui.log.LogEntryListFragment"
android:layout_width="@dimen/item_width"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:layoutManager="LinearLayoutManager"
tools:context="org.mercury_im.messenger.ui.log.LogEntryListActivity"
tools:listitem="@layout/logentry_list_content" />
<FrameLayout
android:id="@+id/logentry_detail_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3" />
</LinearLayout>

View File

@ -5,7 +5,9 @@
android:layout_marginTop="@dimen/msg_spacing_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:clipToPadding="false"
android:clipChildren="false">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/msg_avatar"
@ -27,6 +29,7 @@
android:paddingTop="@dimen/msg_padding_top"
android:paddingEnd="@dimen/msg_padding_end"
android:paddingBottom="@dimen/msg_padding_bottom"
android:elevation="15dp"
app:layout_constraintStart_toEndOf="@id/msg_avatar"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_max="wrap"

View File

@ -22,4 +22,6 @@
<dimen name="msg_padding_end">@dimen/msg_padding_horizontal</dimen>
<dimen name="width_outline">1dp</dimen>
<dimen name="app_bar_height">200dp</dimen>
<dimen name="item_width">200dp</dimen>
</resources>

View File

@ -98,5 +98,7 @@
<string name="pref_ringtone_silent">Silent</string>
<string name="pref_title_vibrate">Vibrate</string>
<string name="title_logentry_list">LogEntries</string>
<string name="title_logentry_detail">LogEntry Detail</string>
</resources>

View File

@ -29,4 +29,6 @@
</style>
<style name="AppTheme.Light.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>

View File

@ -2,27 +2,22 @@ package org.mercury_im.messenger.persistence.room;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.sqlite.db.SupportSQLiteDatabase;
import org.jxmpp.jid.impl.JidCreate;
import org.mercury_im.messenger.persistence.room.dao.AccountDao;
import org.mercury_im.messenger.persistence.room.dao.ChatDao;
import org.mercury_im.messenger.persistence.room.dao.ContactAndEntityDao;
import org.mercury_im.messenger.persistence.room.dao.ContactDao;
import org.mercury_im.messenger.persistence.room.dao.EntityDao;
import org.mercury_im.messenger.persistence.room.dao.MessageDao;
import org.mercury_im.messenger.persistence.room.dao.ContactDao;
import org.mercury_im.messenger.persistence.room.model.RoomAccountModel;
import org.mercury_im.messenger.persistence.room.model.RoomChatModel;
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
import org.mercury_im.messenger.persistence.room.model.RoomEntityModel;
import org.mercury_im.messenger.persistence.room.model.RoomMessageModel;
import java.util.concurrent.Executors;
@Database(version = 1,
entities = {
RoomContactModel.class,

View File

@ -27,6 +27,6 @@ public interface ChatDao extends BaseDao<RoomChatModel> {
@Query("SELECT chats.* FROM chats JOIN entities WHERE fk_account_id = :accountId AND jid = :jid")
LiveData<RoomChatModel> getChatWithJid(long accountId, EntityBareJid jid);
@Query("SELECT * FROM chats JOIN contacts WHERE contacts.pk_contact_id = :contactId")
@Query("SELECT chats.* FROM chats JOIN contacts WHERE contacts.pk_contact_id = :contactId")
LiveData<RoomChatModel> getChatWithContact(long contactId);
}