mirror of
				https://github.com/pierre42100/ComunicAndroid
				synced 2025-11-04 11:34:06 +00:00 
			
		
		
		
	Added update conversation settings button
This commit is contained in:
		@@ -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>
 | 
			
		||||
		Reference in New Issue
	
	Block a user