Skip to content
Snippets Groups Projects
Commit dde513c2 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

ui: fixes for Android 6.0

Use AppCompatTheme and AppCompatActivity where support widgets are used.

Tuleap: #31
Change-Id: Ic73fd8f52ef6acf1a88c70241e152255a3fe3ab4
parent da758d39
No related branches found
No related tags found
No related merge requests found
......@@ -128,7 +128,7 @@ as that of the covered work.
android:name=".client.CallActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppThemeWithoutOverlay"
android:theme="@style/AppThemeWithoutOverlayCompat"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
......
......@@ -33,13 +33,13 @@
package cx.ring.client;
import android.app.Activity;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import cx.ring.R;
import cx.ring.fragments.CallFragment;
import cx.ring.model.Conversation;
import cx.ring.model.SipUri;
import cx.ring.model.TextMessage;
import cx.ring.model.account.Account;
import cx.ring.model.CallContact;
import cx.ring.model.Conference;
......@@ -64,13 +64,15 @@ import android.view.KeyEvent;
import android.view.Window;
import android.view.WindowManager;
public class CallActivity extends Activity implements LocalService.Callbacks, CallFragment.Callbacks, CallProximityManager.ProximityDirector {
import static cx.ring.service.LocalService.*;
public class CallActivity extends AppCompatActivity implements Callbacks, CallFragment.Callbacks, CallProximityManager.ProximityDirector {
@SuppressWarnings("unused")
static final String TAG = "CallActivity";
private boolean init = false;
private LocalService service;
CallFragment mCurrentCallFragment;
private CallFragment mCurrentCallFragment;
private Conference mDisplayedConference;
/* result code sent in case of call failure */
......
......@@ -50,6 +50,7 @@ import android.os.Bundle;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.RemoteException;
import android.support.v7.app.ActionBar;
import android.util.Log;
import android.view.*;
import android.view.View.OnClickListener;
......@@ -255,6 +256,7 @@ public class CallFragment extends CallableWrapperFragment implements CallInterfa
void terminateCall();
Conference getDisplayedConference();
void updateDisplayedConference(Conference c);
ActionBar getSupportActionBar();
}
/**
......@@ -272,6 +274,8 @@ public class CallFragment extends CallableWrapperFragment implements CallInterfa
@Override
public void updateDisplayedConference(Conference c) { }
@Override
public ActionBar getSupportActionBar() { return null; }
@Override
public void startTimer() { }
}
private static final Callbacks sDummyCallbacks = new DummyCallbacks();
......@@ -568,7 +572,7 @@ public class CallFragment extends CallableWrapperFragment implements CallInterfa
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
notificationManager.notify(getConference().notificationId, noti.build());
getActivity().getActionBar().setTitle(contact.getDisplayName());
mCallbacks.getSupportActionBar().setTitle(contact.getDisplayName());
/*synchronized (mBubbleModel) {
mCallbacks.startTimer();
......@@ -730,7 +734,7 @@ public class CallFragment extends CallableWrapperFragment implements CallInterfa
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
notificationManager.notify(getConference().notificationId, noti.build());
getActivity().getActionBar().setTitle(contact.getDisplayName());
mCallbacks.getSupportActionBar().setTitle(contact.getDisplayName());
/*getBubbleFor(getConference().getParticipants().get(0), mBubbleModel.getWidth() / 2, 2 * mBubbleModel.getHeight() / 3);
......@@ -812,7 +816,7 @@ public class CallFragment extends CallableWrapperFragment implements CallInterfa
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getActivity());
notificationManager.notify(getConference().notificationId, noti.build());
getActivity().getActionBar().setTitle(contact.getDisplayName());
mCallbacks.getSupportActionBar().setTitle(contact.getDisplayName());
/*synchronized (mBubbleModel) {
PointF c = mBubbleModel.getCircleCenter();
......
......@@ -149,7 +149,7 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText
}
public void updateLists() {
if (mCallbacks.getService() != null) {
if (mCallbacks.getService() != null && mConferenceAdapter != null) {
mConferenceAdapter.updateDataset(mCallbacks.getService().getConversations());
if (mCallbacks.getService().isConnected()) {
error_msg_pane.setVisibility(View.GONE);
......@@ -188,7 +188,6 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
contactList.addHeaderView(mHeader, null, false);
mStarredGrid.setAdapter(mGridAdapter);
}
......@@ -280,21 +279,16 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText
}
});
mConferenceAdapter = new CallListAdapter(getActivity(), mCallbacks.getService().get40dpContactCache(), mCallbacks.getService().getThreadPool());
mListAdapter = new ContactsAdapter(getActivity(), (HomeActivity)getActivity(), mCallbacks.getService().get40dpContactCache(), mCallbacks.getService().getThreadPool());
mGridAdapter = new StarredContactsAdapter(getActivity());
LocalService service = mCallbacks.getService();
if (service != null)
mConferenceAdapter.updateDataset(mCallbacks.getService().getConversations());
list = (ListView) inflatedView.findViewById(cx.ring.R.id.confs_list);
list.setOnItemClickListener(callClickListener);
list.setOnItemLongClickListener(mItemLongClickListener);
//list.setOnItemLongClickListener(mItemLongClickListener);
mHeader = (LinearLayout) inflater.inflate(R.layout.frag_contact_list_header, null);
contactList = (StickyListHeadersListView) inflatedView.findViewById(R.id.contacts_stickylv);
contactList.setDivider(null);
contactList.addHeaderView(mHeader, null, false);
mStarredGrid = (GridView) mHeader.findViewById(R.id.favorites_grid);
llMain = (LinearLayout) mHeader.findViewById(R.id.llMain);
favHeadLabel = (TextView) mHeader.findViewById(R.id.fav_head_label);
......@@ -314,11 +308,19 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText
error_msg_pane = (ViewGroup) inflatedView.findViewById(R.id.error_msg_pane);
error_msg_txt = (TextView) error_msg_pane.findViewById(R.id.error_msg_txt);
list.setAdapter(mConferenceAdapter);
list.setVisibility(View.VISIBLE);
contactList.setVisibility(View.GONE);
/*listSwitcher = (ViewSwitcher) inflatedView.findViewById(R.id.list_switcher);
listSwitcher.setDisplayedChild(0);*/
LocalService service = mCallbacks.getService();
if (service == null)
return inflatedView;
mConferenceAdapter = new CallListAdapter(getActivity(), service.get40dpContactCache(), service.getThreadPool());
mListAdapter = new ContactsAdapter(getActivity(), (HomeActivity)getActivity(), service.get40dpContactCache(), service.getThreadPool());
mGridAdapter = new StarredContactsAdapter(getActivity());
mConferenceAdapter.updateDataset(mCallbacks.getService().getConversations());
list.setAdapter(mConferenceAdapter);
return inflatedView;
}
......
<?xml version="1.0" encoding="utf-8"?><!--
Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
Copyright (C) 2004-2015 Savoir-faire Linux Inc.
Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
......@@ -17,17 +17,6 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Additional permission under GNU GPL version 3 section 7:
If you modify this program, or any covered work, by linking or
combining it with the OpenSSL project's OpenSSL library (or a
modified version of that library), containing parts covered by the
terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
grants you additional permission to convey the resulting work.
Corresponding Source for a non-source form of such a combination
shall include the source code for the parts of OpenSSL used as well
as that of the covered work.
-->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
......@@ -39,63 +28,58 @@ as that of the covered work.
android:fitsSystemWindows="true"
tools:context=".client.HomeActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewStub
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/viewStub" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@color/actionbar"
<android.support.v7.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@color/actionbar"
android:elevation="4dp"
android:gravity="bottom"
android:longClickable="true"
android:minHeight="?attr/actionBarSize"
android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:contentInsetStart="72dp"
app:elevation="4dp"
app:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:titleMarginBottom="@dimen/action_bar_title_margin_bottom" />
android:elevation="4dp"
android:gravity="bottom"
android:longClickable="true"
android:minHeight="?attr/actionBarSize"
android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:contentInsetStart="72dp"
app:elevation="4dp"
app:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:titleMarginBottom="@dimen/action_bar_title_margin_bottom" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/action_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/main_toolbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="@dimen/action_button_bpadding"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:adjustViewBounds="false"
android:baselineAlignBottom="false"
android:elevation="4dp"
android:visibility="gone"
app:elevation="4dp"
app:fabSize="mini" />
<FrameLayout
android:id="@+id/main_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@id/main_toolbar"
android:orientation="vertical" />
<FrameLayout
android:id="@+id/main_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@id/main_toolbar"
android:orientation="vertical" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/action_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/main_toolbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="@dimen/action_button_bpadding"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:adjustViewBounds="false"
android:baselineAlignBottom="false"
android:elevation="6dp"
android:visibility="gone"
app:elevation="6dp"
app:fabSize="mini" />
</RelativeLayout>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/left_drawer"
......
......@@ -23,17 +23,18 @@ along with this program; if not, write to the Free Software
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
android:animateLayoutChanges="true"
tools:context=".client.HomeActivity">
<RelativeLayout
android:id="@+id/error_msg_pane"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/error_msg_pane"
android:padding="16dp"
android:layout_alignParentTop="true"
android:background="#e57373"
android:padding="16dp"
android:visibility="gone">
<TextView
......@@ -50,50 +51,49 @@ along with this program; if not, write to the Free Software
android:id="@+id/contacts_stickylv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_below="@+id/error_msg_pane"
android:background="@android:color/white"
android:clipToPadding="false"
android:divider="@null"
android:drawSelectorOnTop="true"
android:elevation="2dp"
android:fastScrollEnabled="true"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:scrollbarStyle="outsideOverlay"
android:layout_alignParentLeft="true"
android:layout_marginLeft="0dp"
android:layout_below="@+id/error_msg_pane"
android:elevation="8dp"
android:visibility="gone"
android:background="@android:color/white" />
android:visibility="gone" />
<ListView
android:id="@+id/confs_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:divider="@null"
android:paddingBottom="8dp"
android:paddingTop="8dp"
tools:listitem="@layout/item_calllist"
android:layout_alignParentLeft="true"
android:layout_below="@+id/error_msg_pane"
android:layout_marginLeft="0dp"
android:layout_marginTop="0dp"
android:layout_below="@+id/error_msg_pane"
android:elevation="8dp"
android:background="@android:color/white"
android:visibility="gone" />
android:clipToPadding="false"
android:divider="@null"
android:elevation="2dp"
android:paddingBottom="8dp"
android:paddingTop="8dp"
tools:listitem="@layout/item_calllist" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/newconv_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_compat_margin"
android:elevation="6dp"
android:src="@drawable/ic_add_white_24dp"
app:backgroundTint="@color/color_primary_light"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:rippleColor="@color/color_primary_dark"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_margin="@dimen/fab_compat_margin" />
app:rippleColor="@color/color_primary_dark" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
......@@ -41,11 +40,12 @@ as that of the covered work.
android:id="@+id/contacts_stickylv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:drawSelectorOnTop="true"
android:fastScrollEnabled="true"
android:scrollbarStyle="outsideOverlay"
android:divider="@null"
/>
android:paddingBottom="8dp"
android:paddingTop="8dp" />
<TextView
android:id="@android:id/empty"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment