mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-27 07:49:28 +00:00
Added update conversation settings button
This commit is contained in:
parent
94f8ecf746
commit
3f3fa95d72
@ -1,10 +1,6 @@
|
||||
package org.communiquons.android.comunic.client.ui.fragments;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
@ -12,10 +8,8 @@ import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.ActionBarDrawerToggle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
@ -44,6 +38,7 @@ import org.communiquons.android.comunic.client.ui.adapters.ConversationMessageAd
|
||||
import org.communiquons.android.comunic.client.ui.listeners.OnScrollChangeDetectListener;
|
||||
import org.communiquons.android.comunic.client.ui.utils.BitmapUtils;
|
||||
import org.communiquons.android.comunic.client.ui.utils.UiUtils;
|
||||
import org.communiquons.android.comunic.client.ui.views.AppBarLayout;
|
||||
import org.communiquons.android.comunic.client.ui.views.ScrollRecyclerView;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
@ -107,7 +102,7 @@ public class ConversationFragment extends Fragment
|
||||
/**
|
||||
* Fragment toolbar
|
||||
*/
|
||||
private Toolbar mToolbar;
|
||||
private AppBarLayout mAppBar;
|
||||
|
||||
/**
|
||||
* Fragment main progress bar
|
||||
@ -239,23 +234,26 @@ public class ConversationFragment extends Fragment
|
||||
|
||||
//Get views
|
||||
convMessRecyclerView = view.findViewById(R.id.fragment_conversation_messageslist);
|
||||
mToolbar = view.findViewById(R.id.toolbar);
|
||||
mAppBar = view.findViewById(R.id.appbar);
|
||||
|
||||
//Need user ID
|
||||
int userID = new AccountUtils(getActivity()).get_current_user_id();
|
||||
|
||||
//Initialize toolbar
|
||||
Drawable backDrawable = UiUtils.getDrawable(getActivity(), R.drawable.ic_back);
|
||||
backDrawable.setColorFilter(UiUtils.getColor(getActivity(), android.R.color.white),
|
||||
PorterDuff.Mode.SRC_IN);
|
||||
mToolbar.setNavigationIcon(backDrawable);
|
||||
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
mAppBar.addBackButton(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MainActivity.goBackward(getActivity());
|
||||
}
|
||||
});
|
||||
|
||||
mAppBar.addButton(R.drawable.ic_settings, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
((MainActivity)getActivity()).updateConversation(conversation_id);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//Create the adapter
|
||||
convMessAdapter = new ConversationMessageAdapter(getActivity(),
|
||||
@ -317,6 +315,7 @@ public class ConversationFragment extends Fragment
|
||||
|
||||
//Set a listener to detect when the user reaches the top of the conversation
|
||||
convMessRecyclerView.setOnScrollChangeDetectListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -645,7 +644,7 @@ public class ConversationFragment extends Fragment
|
||||
return;
|
||||
|
||||
getActivity().setTitle(title);
|
||||
mToolbar.setTitle(title);
|
||||
mAppBar.setTitle(title);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,89 @@
|
||||
package org.communiquons.android.comunic.client.ui.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.AppCompatImageButton;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import org.communiquons.android.comunic.client.R;
|
||||
import org.communiquons.android.comunic.client.ui.utils.UiUtils;
|
||||
|
||||
/**
|
||||
* Generic AppBarLayout base class for the fragments of this application
|
||||
*/
|
||||
public class AppBarLayout extends BaseFrameLayoutView {
|
||||
|
||||
private android.support.design.widget.AppBarLayout mAppBarLayout;
|
||||
private Toolbar mToolbar;
|
||||
|
||||
public AppBarLayout(@NonNull Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public AppBarLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public AppBarLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
|
||||
//Set the view
|
||||
View view = inflate(getContext(), R.layout.view_appbarlayout, this);
|
||||
mAppBarLayout = view.findViewById(R.id.app_bar_layout);
|
||||
mToolbar = view.findViewById(R.id.toolbar);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Toolbar view
|
||||
*/
|
||||
public Toolbar getToolbar() {
|
||||
return mToolbar;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the title of the appbar
|
||||
*
|
||||
* @param title The new title
|
||||
*/
|
||||
public void setTitle(String title){
|
||||
mToolbar.setTitle(title);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add back button to the view
|
||||
*
|
||||
* @param listener The listener to use when the button is clicked
|
||||
*/
|
||||
public void addBackButton(View.OnClickListener listener){
|
||||
Drawable backDrawable = UiUtils.getDrawable(getActivity(), R.drawable.ic_back);
|
||||
backDrawable.setColorFilter(UiUtils.getColor(getActivity(), android.R.color.white),
|
||||
PorterDuff.Mode.SRC_IN);
|
||||
mToolbar.setNavigationIcon(backDrawable);
|
||||
mToolbar.setNavigationOnClickListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a button to the toolbar
|
||||
*
|
||||
* @param icon The icon associated to the button
|
||||
* @param listener OnClickListener for the button
|
||||
*/
|
||||
public void addButton(int icon, @Nullable OnClickListener listener) {
|
||||
|
||||
Drawable drawable = UiUtils.getDrawable(getContext(), icon);
|
||||
drawable.setColorFilter(UiUtils.getColor(getContext(), android.R.color.white),
|
||||
PorterDuff.Mode.SRC_IN);
|
||||
|
||||
AppCompatImageButton btn = new AppCompatImageButton(getActivity(),
|
||||
null, android.support.v7.appcompat.R.attr.toolbarStyle);
|
||||
btn.setPadding(5, 0, 5, 0);
|
||||
btn.setImageDrawable(drawable);
|
||||
btn.setOnClickListener(listener);
|
||||
getToolbar().addView(btn);
|
||||
}
|
||||
}
|
9
app/src/main/res/drawable/ic_settings.xml
Normal file
9
app/src/main/res/drawable/ic_settings.xml
Normal 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="@color/default_drawable_color"
|
||||
android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
|
||||
</vector>
|
@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<!-- Loading wheel -->
|
||||
<ProgressBar
|
||||
@ -25,19 +24,11 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
<!-- Application bar -->
|
||||
<org.communiquons.android.comunic.client.ui.views.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<!-- Messages -->
|
||||
<org.communiquons.android.comunic.client.ui.views.ScrollRecyclerView
|
||||
|
16
app/src/main/res/layout/view_appbarlayout.xml
Normal file
16
app/src/main/res/layout/view_appbarlayout.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay"
|
||||
android:id="@+id/app_bar_layout">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
Loading…
Reference in New Issue
Block a user