This commit is contained in:
Paul Schaub 2019-08-11 03:32:13 +02:00
parent 24d0e71cfe
commit c91012ea4d
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
14 changed files with 108 additions and 25 deletions

View File

@ -18,7 +18,7 @@
<PersistentState>
<option name="values">
<map>
<entry key="url" value="jar:file:/opt/android-studio/plugins/android/lib/android.jar!/images/material_design_icons/editor/ic_attach_file_black_24dp.xml" />
<entry key="url" value="jar:file:/opt/android-studio/plugins/android/lib/android.jar!/images/material_design_icons/communication/ic_message_black_24dp.xml" />
</map>
</option>
</PersistentState>
@ -29,7 +29,7 @@
<option name="values">
<map>
<entry key="color" value="ffffff" />
<entry key="outputName" value="ic_attach_file_white_24dp" />
<entry key="outputName" value="ic_message_white_24dp" />
<entry key="sourceFile" value="$USER_HOME$" />
</map>
</option>

View File

@ -2,6 +2,7 @@ package org.mercury_im.messenger.ui.chat;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
@ -104,6 +105,13 @@ public class ChatActivity extends AppCompatActivity implements ChatInputFragment
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_chat, menu);
return true;
}
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
outState.putString(EXTRA_JID, jid.toString());

View File

@ -108,7 +108,6 @@ public class LoginActivity extends AppCompatActivity implements TextView.OnEdito
});
mSignInView.setOnClickListener(view -> viewModel.loginDetailsEntered());
mSignInView.setEnabled(false);
}
private void displayCredentials(LiveData<? extends AccountModel> account) {

View File

@ -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="#FF000000"
android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z"/>
</vector>

View File

@ -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="#FF000000"
android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
</vector>

View File

@ -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="#FF000000"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
</vector>

View File

@ -14,7 +14,9 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
android:background="?attr/colorPrimary">
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
@ -26,6 +28,6 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />
app:srcCompat="@drawable/ic_message_white_24dp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<menu 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"
tools:context="org.mercury_im.messenger.ui.chat.ChatActivity">
<item android:id="@+id/action_search"
android:orderInCategory="0"
android:title="@string/action_search"
android:icon="@drawable/ic_search_black_24dp"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom" />
<item android:id="@+id/action_call"
android:orderInCategory="100"
android:title="@string/action_call"
android:icon="@drawable/ic_call_black_24dp"
app:showAsAction="never" />
<item android:id="@+id/action_clear_history"
android:orderInCategory="200"
android:title="@string/action_delete_history"
app:showAsAction="never" />
<item android:id="@+id/action_mute"
android:orderInCategory="300"
android:title="@string/action_mute"
app:showAsAction="never" />
<item android:id="@+id/action_delete_chat"
android:orderInCategory="400"
android:title="@string/action_delete_chat"
app:showAsAction="never" />
</menu>

View File

@ -2,6 +2,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.mercury_im.messenger.ui.MainActivity">
<item
android:id="@+id/action_search"
android:orderInCategory="0"
android:title="@string/action_search"
android:icon="@drawable/ic_search_black_24dp"
app:showAsAction="ifRoom"
app:actionViewClass="androidx.appcompat.widget.SearchView" />
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
@ -14,21 +23,9 @@
android:title="@string/title_activity_login"
app:showAsAction="never" />
<item
android:id="@+id/action_chat"
android:orderInCategory="120"
android:title="Chat"
app:showAsAction="never" />
<item
android:id="@+id/action_accounts"
android:orderInCategory="130"
android:title="Accounts"
app:showAsAction="never" />
<item
android:id="@+id/action_emoji"
android:orderInCategory="150"
android:title="Emoji"
app:showAsAction="never" />
</menu>

View File

@ -100,5 +100,10 @@
<string name="pref_title_vibrate">Vibrate</string>
<string name="title_logentry_list">LogEntries</string>
<string name="title_logentry_detail">LogEntry Detail</string>
<string name="action_search">Search</string>
<string name="action_call">Call</string>
<string name="action_delete_history">Delete History</string>
<string name="action_mute">Mute</string>
<string name="action_delete_chat">Delete Chat</string>
</resources>

View File

@ -3,10 +3,8 @@ package org.mercury_im.messenger.core;
import org.jivesoftware.smack.AbstractXMPPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
import org.jivesoftware.smackx.caps.EntityCapsManager;
import org.mercury_im.messenger.persistence.model.AccountModel;
import java.sql.SQLOutput;
import java.util.HashMap;
import java.util.Map;
@ -20,14 +18,11 @@ public class ConnectionCenter {
private final Map<Long, MercuryConnection> connectionMap = new HashMap<>();
@Inject
EntityCapsStore capsStore;
private ConnectionCenter() {
}
@Inject
void injectEntityCapsStore(EntityCapsStore store) {
System.out.println("Inject Store");
EntityCapsManager.setPersistentCache(store);
}
public static ConnectionCenter get() {

View File

@ -3,6 +3,7 @@ package org.mercury_im.messenger.core;
import org.jivesoftware.smack.parsing.SmackParsingException;
import org.jivesoftware.smack.xml.SmackXmlParser;
import org.jivesoftware.smack.xml.XmlPullParserException;
import org.jivesoftware.smackx.caps.EntityCapsManager;
import org.jivesoftware.smackx.caps.cache.EntityCapsPersistentCache;
import org.jivesoftware.smackx.disco.packet.DiscoverInfo;
import org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider;
@ -14,6 +15,8 @@ import java.io.StringReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.inject.Inject;
@ -23,6 +26,8 @@ import io.reactivex.schedulers.Schedulers;
public class EntityCapsStore implements EntityCapsPersistentCache {
private static final Logger LOGGER = Logger.getLogger(EntityCapsStore.class.getName());
private final EntityCapsRepository entityCapsRepository;
private final Map<String, DiscoverInfo> discoverInfoMap = new HashMap<>();
@ -31,7 +36,8 @@ public class EntityCapsStore implements EntityCapsPersistentCache {
@Inject
public EntityCapsStore(EntityCapsRepository repository) {
this.entityCapsRepository = repository;
EntityCapsManager.setPersistentCache(this);
LOGGER.log(Level.INFO, "EntityCapsStore set.");
}
private void populateFromDatabase() {