Add first draft of chat activity
This commit is contained in:
parent
28aaa3db73
commit
6c40b0030f
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WizardSettings">
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorWizard">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorAssetStep">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="clipartAsset">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="url" value="jar:file:/home/vanitas/.android-development/android-studio/plugins/android/lib/android.jar!/images/material_design_icons/content/ic_send_black_24dp.xml" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="outputName" value="ic_send_black_24dp" />
|
||||
<entry key="sourceFile" value="$USER_HOME$" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
|
@ -69,6 +69,8 @@ dependencies {
|
|||
// architecture components for database and lifecycle management
|
||||
implementation "android.arch.lifecycle:extensions:$archCompVersion"
|
||||
implementation "android.arch.persistence.room:runtime:$archCompVersion"
|
||||
implementation 'com.android.support:appcompat-v7:27.1.1'
|
||||
implementation 'android.arch.lifecycle:extensions:1.1.1'
|
||||
annotationProcessor "android.arch.lifecycle:compiler:$archCompVersion"
|
||||
annotationProcessor "android.arch.persistence.room:compiler:$archCompVersion"
|
||||
|
||||
|
@ -81,6 +83,7 @@ dependencies {
|
|||
implementation "com.android.support:design:$supportLibVersion"
|
||||
implementation "com.android.support:support-v4:$supportLibVersion"
|
||||
implementation "com.android.support:support-vector-drawable:$supportLibVersion"
|
||||
implementation "com.android.support:cardview-v7:$supportLibVersion"
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||
|
||||
testImplementation 'junit:junit:4.12'
|
||||
|
|
|
@ -13,23 +13,25 @@
|
|||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:name=".view.MainActivity"
|
||||
android:label="@string/title_activity_main"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
<activity android:name=".ui.chat.ChatActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".view.MainActivity"
|
||||
android:label="@string/title_activity_main"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".view.settings.SettingsActivity"
|
||||
android:label="@string/title_activity_settings" />
|
||||
<activity
|
||||
android:name=".LoginActivity"
|
||||
android:name=".view.LoginActivity"
|
||||
android:label="@string/title_activity_login" />
|
||||
<activity android:name=".view.LoginActivity" />
|
||||
|
||||
<service android:name=".service.XmppService" />
|
||||
</application>
|
||||
|
|
|
@ -7,7 +7,7 @@ import org.olomono.messenger.di.module.RoomModule;
|
|||
import org.olomono.messenger.persistence.database.AppDatabase;
|
||||
import org.olomono.messenger.persistence.database.dao.AccountDao;
|
||||
import org.olomono.messenger.persistence.database.dao.RosterEntryDao;
|
||||
import org.olomono.messenger.persistence.repository.AccountRepository;
|
||||
import org.olomono.messenger.persistence.repository.account.AccountRepository;
|
||||
import org.olomono.messenger.persistence.repository.RosterEntryRepository;
|
||||
import org.olomono.messenger.view.MainActivity;
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ import android.app.Application;
|
|||
import org.olomono.messenger.persistence.database.AppDatabase;
|
||||
import org.olomono.messenger.persistence.database.dao.AccountDao;
|
||||
import org.olomono.messenger.persistence.database.dao.RosterEntryDao;
|
||||
import org.olomono.messenger.persistence.repository.AccountRepository;
|
||||
import org.olomono.messenger.persistence.repository.account.AccountRepository;
|
||||
import org.olomono.messenger.persistence.repository.RosterEntryRepository;
|
||||
import org.olomono.messenger.persistence.repository.impl.AccountRepositoryImpl;
|
||||
import org.olomono.messenger.persistence.repository.account.AccountRepositoryImpl;
|
||||
import org.olomono.messenger.persistence.repository.impl.RosterEntryRepositoryImpl;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
|
|
@ -1,45 +1,57 @@
|
|||
package org.olomono.messenger.persistence.database.model;
|
||||
|
||||
import android.arch.persistence.room.ColumnInfo;
|
||||
import android.arch.persistence.room.Entity;
|
||||
import android.arch.persistence.room.PrimaryKey;
|
||||
import android.arch.persistence.room.TypeConverters;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.olomono.messenger.persistence.database.type_converter.EntityBareJidConverter;
|
||||
import org.olomono.messenger.persistence.repository.account.Account;
|
||||
|
||||
@Entity
|
||||
public class AccountModel {
|
||||
public class AccountModel implements Account {
|
||||
|
||||
@PrimaryKey
|
||||
@ColumnInfo(name = "id")
|
||||
public int id;
|
||||
|
||||
@TypeConverters(EntityBareJidConverter.class)
|
||||
@ColumnInfo(name = "jid")
|
||||
private EntityBareJid jid;
|
||||
|
||||
@ColumnInfo(name = "password")
|
||||
private String password;
|
||||
|
||||
@ColumnInfo(name = "enabled")
|
||||
private boolean enabled;
|
||||
|
||||
@Override
|
||||
public EntityBareJid getJid() {
|
||||
return jid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setJid(EntityBareJid jid) {
|
||||
this.jid = jid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package org.olomono.messenger.persistence.repository.account;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
|
||||
public interface Account {
|
||||
|
||||
String getPassword();
|
||||
|
||||
void setPassword(String password);
|
||||
|
||||
EntityBareJid getJid();
|
||||
|
||||
void setJid(EntityBareJid jid);
|
||||
|
||||
boolean getEnabled();
|
||||
|
||||
void setEnabled(boolean enabled);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.olomono.messenger.persistence.repository;
|
||||
package org.olomono.messenger.persistence.repository.account;
|
||||
|
||||
import android.arch.lifecycle.LiveData;
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
package org.olomono.messenger.persistence.repository.impl;
|
||||
package org.olomono.messenger.persistence.repository.account;
|
||||
|
||||
import android.arch.lifecycle.LiveData;
|
||||
|
||||
import org.olomono.messenger.persistence.database.dao.AccountDao;
|
||||
import org.olomono.messenger.persistence.database.model.AccountModel;
|
||||
import org.olomono.messenger.persistence.repository.AccountRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package org.olomono.messenger.ui.chat;
|
||||
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
|
||||
import org.olomono.messenger.R;
|
||||
|
||||
public class ChatActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_chat);
|
||||
if (savedInstanceState == null) {
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(R.id.container, ChatFragment.newInstance())
|
||||
.commitNow();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package org.olomono.messenger.ui.chat;
|
||||
|
||||
import android.arch.lifecycle.ViewModelProviders;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.olomono.messenger.R;
|
||||
|
||||
public class ChatFragment extends Fragment {
|
||||
|
||||
private ChatViewModel mViewModel;
|
||||
|
||||
public static ChatFragment newInstance() {
|
||||
return new ChatFragment();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_chat, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mViewModel = ViewModelProviders.of(this).get(ChatViewModel.class);
|
||||
// TODO: Use the ViewModel
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.olomono.messenger.ui.chat;
|
||||
|
||||
import android.arch.lifecycle.ViewModel;
|
||||
|
||||
public class ChatViewModel extends ViewModel {
|
||||
// TODO: Implement the ViewModel
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
package org.olomono.messenger.view;
|
||||
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import android.arch.lifecycle.ViewModelProviders;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
|
@ -15,6 +15,7 @@ import android.widget.TextView;
|
|||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.impl.JidCreate;
|
||||
import org.olomono.messenger.R;
|
||||
import org.olomono.messenger.view.viewmodel.LoginViewModel;
|
||||
|
||||
/**
|
||||
* A login screen that offers login via email/password.
|
||||
|
@ -36,17 +37,10 @@ public class LoginActivity extends AppCompatActivity implements TextView.OnEdito
|
|||
mJidView = findViewById(R.id.jid);
|
||||
mPasswordView = findViewById(R.id.password);
|
||||
|
||||
LoginViewModel viewModel = ViewModelProviders.of(this).get(LoginViewModel.class);
|
||||
|
||||
mJidView.setOnEditorActionListener(this);
|
||||
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
|
||||
if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
|
||||
loginDetailsEntered();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
mPasswordView.setOnEditorActionListener(this);
|
||||
|
||||
Button mEmailSignInButton = findViewById(R.id.sign_in_button);
|
||||
mEmailSignInButton.setOnClickListener(new OnClickListener() {
|
||||
|
|
|
@ -9,19 +9,16 @@ import android.support.v7.widget.Toolbar;
|
|||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.jxmpp.jid.impl.JidCreate;
|
||||
import org.jxmpp.stringprep.XmppStringprepException;
|
||||
import org.olomono.messenger.R;
|
||||
import org.olomono.messenger.di.component.AppComponent;
|
||||
import org.olomono.messenger.di.component.DaggerAppComponent;
|
||||
import org.olomono.messenger.di.module.AppModule;
|
||||
import org.olomono.messenger.di.module.RoomModule;
|
||||
import org.olomono.messenger.persistence.database.AppDatabase;
|
||||
import org.olomono.messenger.persistence.database.model.AccountModel;
|
||||
import org.olomono.messenger.persistence.database.model.RosterEntryModel;
|
||||
import org.olomono.messenger.persistence.repository.AccountRepository;
|
||||
import org.olomono.messenger.persistence.repository.account.AccountRepository;
|
||||
import org.olomono.messenger.persistence.repository.RosterEntryRepository;
|
||||
import org.olomono.messenger.view.settings.SettingsActivity;
|
||||
|
||||
|
@ -29,8 +26,6 @@ import java.util.List;
|
|||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import dagger.internal.DaggerCollections;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
@Inject
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package org.olomono.messenger.view.viewmodel;
|
||||
|
||||
import android.arch.lifecycle.MutableLiveData;
|
||||
import android.arch.lifecycle.ViewModel;
|
||||
|
||||
|
||||
public class LoginViewModel extends ViewModel {
|
||||
|
||||
public LoginViewModel() {
|
||||
super();
|
||||
}
|
||||
|
||||
public MutableLiveData<DisplayableCredentials> credentials;
|
||||
|
||||
void setJid(String jid) {
|
||||
}
|
||||
|
||||
void setPassword(String password) {
|
||||
|
||||
}
|
||||
|
||||
static class DisplayableCredentials {
|
||||
|
||||
}
|
||||
}
|
|
@ -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="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
|
||||
</vector>
|
|
@ -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="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
|
||||
</vector>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.chat.ChatActivity" />
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout 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:id="@+id/chat"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.chat.ChatFragment">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/recyclerView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:listitem="@layout/recycler_view_item_1">
|
||||
|
||||
</android.support.v7.widget.RecyclerView>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container_chat"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<include layout="@layout/view_chat_field"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout
|
||||
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="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
tools:src="@tools:sample/avatars"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginStart="8dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginTop="8dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="@tools:sample/full_names"
|
||||
android:textSize="20sp"
|
||||
android:textColor="@android:color/black"
|
||||
app:layout_constraintTop_toTopOf="@+id/imageView2"
|
||||
app:layout_constraintStart_toEndOf="@+id/imageView2"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/textView2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView2"
|
||||
android:layout_width="285dp"
|
||||
android:layout_height="20dp"
|
||||
tools:text="@tools:sample/lorem[4:10]"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/imageView2"
|
||||
app:layout_constraintStart_toEndOf="@+id/imageView2"
|
||||
android:layout_marginStart="8dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:layout_constraintHorizontal_bias="0.050" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="@tools:sample/date/hhmm"
|
||||
app:layout_constraintTop_toTopOf="@+id/imageView2"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_marginEnd="8dp" />
|
||||
</android.support.constraint.ConstraintLayout>
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout 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="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@null">
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/floatingActionButton"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:scaleType="center"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="1.0"
|
||||
app:srcCompat="@drawable/ic_add_white_24dp" />
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="48dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/floatingActionButton"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
card_view:cardCornerRadius="24dp"
|
||||
card_view:cardElevation="6dp"
|
||||
app:cardUseCompatPadding="true">
|
||||
|
||||
<android.support.constraint.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/editText"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:inputType="textMultiLine|textAutoCorrect"
|
||||
android:maxLines="6"
|
||||
card_view:layout_constraintBottom_toBottomOf="parent"
|
||||
card_view:layout_constraintEnd_toStartOf="@+id/appCompatImageButton"
|
||||
card_view:layout_constraintStart_toStartOf="parent"
|
||||
card_view:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Open Protocols!" />
|
||||
|
||||
<android.support.v7.widget.AppCompatImageButton
|
||||
android:id="@+id/appCompatImageButton"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:background="@null"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:srcCompat="@drawable/ic_send_black_24dp"
|
||||
card_view:layout_constraintBottom_toBottomOf="parent" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#008577</color>
|
||||
<color name="colorPrimaryDark">#00574B</color>
|
||||
<color name="colorAccent">#D81B60</color>
|
||||
<color name="colorPrimary">#38445e</color>
|
||||
<color name="colorPrimaryDark">#0f1d34</color>
|
||||
<color name="colorAccent">#636f8b</color>
|
||||
|
||||
<color name="background">#ECEFF1</color>
|
||||
</resources>
|
||||
|
|
|
@ -1,20 +1,43 @@
|
|||
<resources>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
|
||||
<item name="android:colorBackground">@color/background</item>
|
||||
<item name="editTextBackground">@null</item>
|
||||
|
||||
<item name="actionBarStyle">@style/AppTheme.AppBarOverlay</item>
|
||||
|
||||
</style>
|
||||
|
||||
<!-- Theme for Activities that either have their own, or no toolbar at all -->
|
||||
<style name="AppTheme.NoActionBar">
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
|
||||
<!-- Theme for the Toolbar -->
|
||||
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.ActionBar">
|
||||
<item name="android:windowTitleStyle">@style/AppTheme.AppBarOverlay.TitleStyle</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
|
||||
<!-- Theme for menu entry popups of the toolbars menu -->
|
||||
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat" />
|
||||
|
||||
<style name="AppTheme.AppBarOverlay.TitleStyle" parent="Theme.AppCompat.Light">
|
||||
<item name="android:textColorPrimary">#fff</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.ChatTextField" parent="Theme.AppCompat.NoActionBar">
|
||||
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.ChatText" parent="AppTheme">
|
||||
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
Loading…
Reference in New Issue