ui: bump to material design
Refs #75022
Change-Id: I9db3858c1ab365de8572323bc19ef630da9774fd
diff --git a/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java
index 9b480bf..5f3ba7e 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java
@@ -83,30 +83,66 @@
if (rowView == null) {
LayoutInflater inflater = LayoutInflater.from(mContext);
+ rowView = inflater.inflate(R.layout.item_account_selected, null);
+
+ entryView = new AccountView();
+ entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
+ entryView.host = (TextView) rowView.findViewById(R.id.account_host);
+ entryView.error = (ImageView) rowView.findViewById(R.id.error_indicator);
+ rowView.setTag(entryView);
+ } else {
+ entryView = (AccountView) rowView.getTag();
+ }
+/*
+ entryView.alias.setText(accounts.get(pos).getAlias());
+
+ entryView.host.setText(accounts.get(pos).getHost() + " - " + accounts.get(pos).getRegistered_state());
+ // accManager.displayAccountDetails(accounts.get(pos), entryView);
+ entryView.error.setVisibility(View.GONE);
+*/
+ updateAccountView(entryView, accounts.get(pos));
+
+ return rowView;
+ }
+
+ @Override
+ public View getDropDownView(int pos, View convertView, ViewGroup parent) {
+ View rowView = convertView;
+ AccountView entryView = null;
+
+ if (rowView == null) {
+ LayoutInflater inflater = LayoutInflater.from(mContext);
rowView = inflater.inflate(R.layout.item_account, null);
entryView = new AccountView();
entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
entryView.host = (TextView) rowView.findViewById(R.id.account_host);
- entryView.select = (ImageView) rowView.findViewById(R.id.account_selected);
+ entryView.error = (ImageView) rowView.findViewById(R.id.error_indicator);
rowView.setTag(entryView);
} else {
entryView = (AccountView) rowView.getTag();
}
-
+/*
entryView.alias.setText(accounts.get(pos).getAlias());
entryView.host.setText(accounts.get(pos).getHost() + " - " + accounts.get(pos).getRegistered_state());
// accManager.displayAccountDetails(accounts.get(pos), entryView);
if (pos == selectedAccount) {
- entryView.select.setVisibility(View.VISIBLE);
+ entryView.error.setVisibility(View.VISIBLE);
} else {
- entryView.select.setVisibility(View.GONE);
+ entryView.error.setVisibility(View.GONE);
}
-
+*/
+ updateAccountView(entryView, accounts.get(pos));
return rowView;
}
+ private void updateAccountView(AccountView entryView, Account acc) {
+ entryView.alias.setText(acc.getAlias());
+ entryView.host.setText(acc.getHost() + " - " + acc.getRegistered_state());
+ entryView.error.setVisibility(View.GONE);
+ }
+
public Account getAccount(String accountID) {
for(Account acc : accounts) {
if(acc.getAccountID().contentEquals(accountID))
@@ -121,7 +157,7 @@
public class AccountView {
public TextView alias;
public TextView host;
- public ImageView select;
+ public ImageView error;
}
public void setSelectedAccount(int pos) {
diff --git a/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java
index bae0414..b9b2d13 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java
@@ -34,8 +34,8 @@
import java.util.ArrayList;
import java.util.Locale;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
+import android.app.Fragment;
+import android.app.FragmentManager;
import cx.ring.R;
import cx.ring.fragments.CallListFragment;
import cx.ring.fragments.DialingFragment;
@@ -43,9 +43,10 @@
import com.astuetz.PagerSlidingTabStrip;
import android.content.Context;
+import android.support.v13.app.FragmentStatePagerAdapter;
import android.util.Log;
-public class SectionsPagerAdapter extends android.support.v4.app.FragmentStatePagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
+public class SectionsPagerAdapter extends FragmentStatePagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
private static final String TAG = SectionsPagerAdapter.class.getSimpleName();
Context mContext;
diff --git a/ring-android/app/src/main/java/cx/ring/client/CallActivity.java b/ring-android/app/src/main/java/cx/ring/client/CallActivity.java
index 9f2071c..8df8c72 100644
--- a/ring-android/app/src/main/java/cx/ring/client/CallActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/CallActivity.java
@@ -35,7 +35,7 @@
import java.util.*;
-import android.support.v4.app.FragmentActivity;
+import android.app.Activity;
import android.util.Log;
import cx.ring.R;
import cx.ring.fragments.CallFragment;
@@ -68,7 +68,7 @@
import android.view.Window;
import android.view.WindowManager;
-public class CallActivity extends FragmentActivity implements IMFragment.Callbacks, CallFragment.Callbacks, CallProximityManager.ProximityDirector {
+public class CallActivity extends Activity implements IMFragment.Callbacks, CallFragment.Callbacks, CallProximityManager.ProximityDirector {
@SuppressWarnings("unused")
static final String TAG = "CallActivity";
@@ -112,7 +112,7 @@
}
mSlidingPaneLayout.setCurFragment(mCurrentCallFragment);
- getSupportFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment)
+ getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment)
.replace(R.id.message_list_frame, mIMFragment).commit();
}
diff --git a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
index 7b4049c..9358e7e 100644
--- a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
@@ -42,7 +42,6 @@
import android.app.Activity;
import android.app.AlertDialog;
-import android.support.v4.app.*;
import cx.ring.R;
import cx.ring.fragments.AboutFragment;
import cx.ring.fragments.AccountsManagementFragment;
@@ -62,6 +61,10 @@
import cx.ring.views.SlidingUpPanelLayout;
import cx.ring.views.SlidingUpPanelLayout.PanelSlideListener;
+import android.app.Fragment;
+import android.app.FragmentManager;
+
+import android.app.FragmentTransaction;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
@@ -77,22 +80,31 @@
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.NavigationView;
+import android.support.v4.app.FragmentActivity;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
import android.util.Log;
+import android.util.TypedValue;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.Toast;
-public class HomeActivity extends FragmentActivity implements DialingFragment.Callbacks, AccountsManagementFragment.Callbacks,
- ContactListFragment.Callbacks, CallListFragment.Callbacks, HistoryFragment.Callbacks, MenuFragment.Callbacks {
+public class HomeActivity extends AppCompatActivity implements DialingFragment.Callbacks, AccountsManagementFragment.Callbacks,
+ ContactListFragment.Callbacks, CallListFragment.Callbacks, HistoryFragment.Callbacks, NavigationView.OnNavigationItemSelectedListener, MenuFragment.Callbacks {
static final String TAG = HomeActivity.class.getSimpleName();
private ContactListFragment mContactsFragment = null;
- private MenuFragment fMenu;
+ private NavigationView fMenu;
+ private MenuFragment fMenuHead = null;
private boolean mBound = false;
private ISipService service;
@@ -103,6 +115,8 @@
SlidingUpPanelLayout mContactDrawer;
private DrawerLayout mNavigationDrawer;
private ActionBarDrawerToggle mDrawerToggle;
+ private Toolbar toolbar;
+ private FloatingActionButton actionButton;
private boolean isClosing = false;
private Timer t = new Timer();
@@ -128,6 +142,13 @@
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
+ toolbar = (Toolbar) findViewById(R.id.main_toolbar);
+ setSupportActionBar(toolbar);
+ actionButton = (FloatingActionButton) findViewById(R.id.action_button);
+
+ fMenu = (NavigationView) findViewById(R.id.left_drawer);
+ fMenu.setNavigationItemSelectedListener(this);
+
mContactsFragment = new ContactListFragment();
getFragmentManager().beginTransaction().replace(R.id.contacts_frame, mContactsFragment).commit();
@@ -141,12 +162,12 @@
@Override
public void onPanelSlide(View panel, float slideOffset) {
if (slideOffset < 0.2) {
- if (getActionBar().isShowing()) {
- getActionBar().hide();
+ if (getSupportActionBar().isShowing()) {
+ getSupportActionBar().hide();
}
} else {
- if (!getActionBar().isShowing()) {
- getActionBar().show();
+ if (!getSupportActionBar().isShowing()) {
+ getSupportActionBar().show();
}
}
}
@@ -169,27 +190,23 @@
mNavigationDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
- // set a custom shadow that overlays the main content when the drawer opens
- mNavigationDrawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
-
- getActionBar().setDisplayHomeAsUpEnabled(true);
- getActionBar().setHomeButtonEnabled(true);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
mNavigationDrawer, /* DrawerLayout object */
- R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
+ // R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
@Override
public void onDrawerClosed(View view) {
- invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
+ invalidateOptionsMenu();
}
@Override
public void onDrawerOpened(View drawerView) {
- // getActionBar().setTitle(mDrawerTitle);
- invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
+ invalidateOptionsMenu();
}
};
@@ -203,7 +220,7 @@
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
if (mContactDrawer.isExpanded()) {
- getActionBar().hide();
+ getSupportActionBar().hide();
}
}
@@ -227,6 +244,29 @@
}
+ public void setToolbarState(boolean double_h, int title_res) {
+ TypedValue tv = new TypedValue();
+ if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
+ int abSz = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
+ ViewGroup.LayoutParams params = toolbar.getLayoutParams();
+ if (double_h) {
+ params.height = abSz*2;
+ actionButton.setVisibility(View.VISIBLE);
+ }
+ else {
+ params.height = abSz;
+ actionButton.setVisibility(View.GONE);
+ }
+ toolbar.setLayoutParams(params);
+ toolbar.setMinimumHeight(abSz);
+ }
+ toolbar.setTitle(title_res);
+ }
+
+ public FloatingActionButton getActionButton() {
+ return actionButton;
+ }
+
private static boolean copyAssetFolder(AssetManager assetManager, String fromAssetPath, String toPath) {
try {
String[] files = assetManager.list(fromAssetPath);
@@ -301,9 +341,9 @@
return;
}
- if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
+ if (getFragmentManager().getBackStackEntryCount() > 1) {
popCustomBackStack();
- fMenu.backToHome();
+ fMenu.getMenu().findItem(R.id.menuitem_home).setChecked(true);
return;
}
@@ -324,7 +364,7 @@
}
private void popCustomBackStack() {
- FragmentManager fm = getSupportFragmentManager();
+ FragmentManager fm = getFragmentManager();
FragmentManager.BackStackEntry entry = fm.getBackStackEntryAt(0);
fContent = fm.findFragmentByTag(entry.getName());
for (int i = 0; i < fm.getBackStackEntryCount() - 1; ++i) {
@@ -372,15 +412,23 @@
@Override
public void onServiceConnected(ComponentName className, IBinder binder) {
service = ISipService.Stub.asInterface(binder);
- fMenu = new MenuFragment();
fContent = new HomeFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.left_drawer, fMenu).replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
+ if (fMenuHead != null)
+ fMenu.removeHeaderView(fMenuHead.getView());
+ fMenu.inflateHeaderView(R.layout.menuheader);
+ fMenuHead = (MenuFragment) getFragmentManager().findFragmentById(R.id.accountselector);
+
+ getFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
mBound = true;
Log.d(TAG, "Service connected service=" + service);
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
+ if (fMenuHead != null) {
+ fMenu.removeHeaderView(fMenuHead.getView());
+ fMenuHead = null;
+ }
mBound = false;
Log.d(TAG, "Service disconnected service=" + service);
@@ -405,8 +453,8 @@
switch (requestCode) {
case REQUEST_CODE_PREFERENCES:
case AccountsManagementFragment.ACCOUNT_EDIT_REQUEST:
- if (fMenu != null)
- fMenu.updateAllAccounts();
+ if (fMenuHead != null)
+ fMenuHead.updateAllAccounts();
break;
case REQUEST_CODE_CALL:
if (resultCode == CallActivity.RESULT_FAILURE) {
@@ -438,17 +486,17 @@
@Override
public void onCallContact(final CallContact c) {
- if (fMenu.getSelectedAccount() == null) {
+ if (fMenuHead.getSelectedAccount() == null) {
createAccountDialog().show();
return;
}
- if (!fMenu.getSelectedAccount().isRegistered()) {
+ if (!fMenuHead.getSelectedAccount().isRegistered()) {
createNotRegisteredDialog().show();
return;
}
- getActionBar().show();
+ getSupportActionBar().show();
Thread launcher = new Thread(new Runnable() {
final String[] CONTACTS_PHONES_PROJECTION = new String[]{Phone.NUMBER, Phone.TYPE};
@@ -459,7 +507,7 @@
Bundle args = new Bundle();
args.putString(SipCall.ID, Integer.toString(Math.abs(new Random().nextInt())));
- args.putParcelable(SipCall.ACCOUNT, fMenu.getSelectedAccount());
+ args.putParcelable(SipCall.ACCOUNT, fMenuHead.getSelectedAccount());
args.putInt(SipCall.STATE, SipCall.state.CALL_STATE_NONE);
args.putInt(SipCall.TYPE, SipCall.direction.CALL_TYPE_OUTGOING);
@@ -492,7 +540,7 @@
@Override
public void onCallHistory(HistoryEntry to) {
- Account usedAccount = fMenu.retrieveAccountById(to.getAccountID());
+ Account usedAccount = fMenuHead.retrieveAccountById(to.getAccountID());
if (usedAccount == null) {
createAccountDialog().show();
@@ -519,14 +567,14 @@
@Override
public void onCallDialed(String to) {
- Account usedAccount = fMenu.getSelectedAccount();
+ Account usedAccount = fMenuHead.getSelectedAccount();
if (usedAccount == null) {
createAccountDialog().show();
return;
}
- if (fMenu.getSelectedAccount().isRegistered()) {
+ if (usedAccount.isRegistered() || usedAccount.isIP2IP()) {
Bundle args = new Bundle();
args.putString(SipCall.ID, Integer.toString(Math.abs(new Random().nextInt())));
args.putParcelable(SipCall.ACCOUNT, usedAccount);
@@ -615,37 +663,39 @@
}
@Override
- public void onSectionSelected(int pos) {
-
+ public boolean onNavigationItemSelected(MenuItem pos) {
+ pos.setChecked(true);
mNavigationDrawer.closeDrawers();
- switch (pos) {
- case 0:
+ switch (pos.getItemId()) {
+ case R.id.menuitem_home:
if (fContent instanceof HomeFragment)
break;
- if (getSupportFragmentManager().getBackStackEntryCount() == 1)
+ if (getFragmentManager().getBackStackEntryCount() == 1)
break;
popCustomBackStack();
break;
- case 1:
+ case R.id.menuitem_accounts:
if (fContent instanceof AccountsManagementFragment)
break;
fContent = new AccountsManagementFragment();
- getSupportFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "Accounts").addToBackStack("Accounts").commit();
+ getFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "Accounts").addToBackStack("Accounts").commit();
break;
- case 2:
+ case R.id.menuitem_about:
if (fContent instanceof AboutFragment)
break;
fContent = new AboutFragment();
- getSupportFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "About").addToBackStack("About").commit();
+ getFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "About").addToBackStack("About").commit();
break;
+ default:
+ return false;
}
-
+ return true;
}
}
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java
index be1037c..27605be 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java
@@ -2,7 +2,7 @@
import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
@@ -10,13 +10,14 @@
import android.view.ViewGroup;
import android.widget.TextView;
import cx.ring.R;
+import cx.ring.client.HomeActivity;
public class AboutFragment extends Fragment {
@Override
public void onResume() {
super.onResume();
- getActivity().getActionBar().setTitle(R.string.menu_item_about);
+ ((HomeActivity)getActivity()).setToolbarState(false, R.string.menu_item_about);
}
@Override
@@ -32,7 +33,7 @@
}
TextView link = (TextView) inflatedView.findViewById(R.id.web_site);
- String linkText = "<a href='http://sflphone.org/'>" + getResources().getString(R.string.web_site) + "</a>";
+ String linkText = "<a href='http://ring.cx'>" + getResources().getString(R.string.web_site) + "</a>";
link.setText(Html.fromHtml(linkText));
link.setMovementMethod(LinkMovementMethod.getInstance());
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java
index 6172708..80257f3 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java
@@ -36,7 +36,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
import android.util.Log;
import cx.ring.interfaces.AccountsInterface;
import cx.ring.service.ConfigurationManagerCallback;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
index 09da403..7384c9a 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
@@ -35,24 +35,33 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
import android.content.Context;
import android.content.Intent;
+import android.content.Loader;
+import android.graphics.PorterDuff;
import android.os.Bundle;
import android.os.RemoteException;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
+import android.support.design.widget.FloatingActionButton;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.*;
+import android.support.v7.widget.Toolbar;
import android.util.Log;
+import android.util.TypedValue;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
+
import cx.ring.R;
import cx.ring.client.AccountEditionActivity;
import cx.ring.client.AccountWizard;
+import cx.ring.client.HomeActivity;
import cx.ring.loaders.AccountsLoader;
import cx.ring.loaders.LoaderConstants;
import cx.ring.model.account.Account;
+import cx.ring.model.account.AccountDetailBasic;
import cx.ring.service.ISipService;
import cx.ring.views.dragsortlv.DragSortListView;
@@ -60,7 +69,7 @@
import java.util.ArrayList;
public class AccountsManagementFragment extends AccountWrapperFragment implements LoaderManager.LoaderCallbacks<Bundle> {
- static final String TAG = "AccountManagementFragment";
+ static final String TAG = "AccountManagementFrag";
static final String DEFAULT_ACCOUNT_ID = "IP2IP";
static final int ACCOUNT_CREATE_REQUEST = 1;
public static final int ACCOUNT_EDIT_REQUEST = 2;
@@ -138,7 +147,7 @@
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View inflatedView = inflater.inflate(R.layout.frag_accounts_list, parent, false);
- ((ListView)inflatedView.findViewById(R.id.accounts_list)).setAdapter(mAccountsAdapter);
+ ((ListView) inflatedView.findViewById(R.id.accounts_list)).setAdapter(mAccountsAdapter);
return inflatedView;
}
@@ -179,7 +188,16 @@
public void onResume() {
super.onResume();
accountsLoader.onContentChanged();
- getActivity().getActionBar().setTitle(R.string.menu_item_accounts);
+ ((HomeActivity) getActivity()).setToolbarState(true, R.string.menu_item_accounts);
+ FloatingActionButton btn = ((HomeActivity) getActivity()).getActionButton();
+ btn.setImageResource(R.drawable.ic_add_white_24dp);
+ btn.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent().setClass(getActivity(), AccountWizard.class);
+ startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
+ }
+ });
}
@Override
@@ -287,6 +305,7 @@
rowView = inflater.inflate(R.layout.item_account_pref, null);
entryView = new AccountView();
+ entryView.handle = (ImageView) rowView.findViewById(R.id.drag_handle);
entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
entryView.host = (TextView) rowView.findViewById(R.id.account_host);
entryView.enabled = (CheckBox) rowView.findViewById(R.id.account_checked);
@@ -300,15 +319,18 @@
if (item.isIP2IP()) {
entryView.host.setText(item.getRegistered_state());
entryView.enabled.setVisibility(View.GONE);
+ entryView.handle.setVisibility(View.INVISIBLE);
} else {
- entryView.host.setText(item.getHost() + " - " + item.getRegistered_state());
+ if (item.isSip())
+ entryView.host.setText(item.getHost() + " - " + item.getRegistered_state());
+ else
+ entryView.host.setText(item.getBasicDetails().getDetailString(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME));
entryView.enabled.setChecked(item.isEnabled());
entryView.enabled.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
item.setEnabled(!item.isEnabled());
-
try {
mCallbacks.getService().setAccountDetails(item.getAccountID(), item.getDetails());
} catch (RemoteException e) {
@@ -327,6 +349,7 @@
* *******************
*/
public class AccountView {
+ public ImageView handle;
public TextView alias;
public TextView host;
public CheckBox enabled;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
index b2b2406..24bd94f 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
@@ -32,6 +32,7 @@
package cx.ring.fragments;
import android.app.Activity;
+import android.app.FragmentManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -46,7 +47,6 @@
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.RemoteException;
-import android.support.v4.app.FragmentManager;
import android.util.FloatMath;
import android.util.Log;
import android.view.*;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java
index 53ccc01..eb0a632 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java
@@ -36,7 +36,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
import android.util.Log;
import cx.ring.interfaces.CallInterface;
import cx.ring.model.Conference;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java
index 7a634f9..71425d4 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java
@@ -33,7 +33,7 @@
import java.util.Locale;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
import cx.ring.R;
import cx.ring.service.ISipService;
import cx.ring.views.ClearableEditText;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java b/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java
index 5e09f23..9dd2ebc 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java
@@ -31,7 +31,7 @@
package cx.ring.fragments;
-import android.support.v4.app.DialogFragment;
+import android.app.DialogFragment;
import cx.ring.R;
import android.app.AlertDialog;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java
index 7a04f0a..c7221b3 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java
@@ -34,10 +34,10 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
+import android.app.ListFragment;
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
+import android.content.Loader;
import android.view.*;
import cx.ring.R;
import cx.ring.adapters.ContactPictureTask;
@@ -62,7 +62,8 @@
import android.widget.ListAdapter;
import android.widget.TextView;
-public class HistoryFragment extends ListFragment implements LoaderManager.LoaderCallbacks<ArrayList<HistoryEntry>> {
+public class HistoryFragment extends ListFragment implements LoaderManager.LoaderCallbacks<ArrayList<HistoryEntry>>
+{
private static final String TAG = HistoryFragment.class.getSimpleName();
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java
index b89841d..b0c58d8 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java
@@ -30,12 +30,15 @@
*/
package cx.ring.fragments;
-import android.support.v4.app.Fragment;
import cx.ring.R;
import cx.ring.adapters.SectionsPagerAdapter;
+import cx.ring.client.HomeActivity;
+
import com.astuetz.PagerSlidingTabStrip;
import android.app.Activity;
+import android.app.Fragment;
+
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
@@ -55,7 +58,7 @@
@Override
public void onResume() {
super.onResume();
- getActivity().getActionBar().setTitle(R.string.menu_item_home);
+ ((HomeActivity)getActivity()).setToolbarState(false, R.string.app_name);
}
@Override
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
index d7653d8..42bc786 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
@@ -31,18 +31,17 @@
package cx.ring.fragments;
import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
import android.content.Intent;
+import android.content.Loader;
import android.os.Bundle;
import android.os.RemoteException;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
-import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import cx.ring.R;
import cx.ring.adapters.AccountSelectionAdapter;
@@ -63,20 +62,11 @@
AccountSelectionAdapter mAccountAdapter;
private Spinner spinnerAccounts;
private Callbacks mCallbacks = sDummyCallbacks;
-
- private ListView sections;
-
private static Callbacks sDummyCallbacks = new Callbacks() {
-
@Override
public ISipService getService() {
return null;
}
-
- @Override
- public void onSectionSelected(int pos) {
-
- }
};
public Account retrieveAccountById(String accountID) {
@@ -90,11 +80,7 @@
}
public interface Callbacks {
-
- public ISipService getService();
-
- public void onSectionSelected(int pos);
-
+ ISipService getService();
}
@Override
@@ -140,20 +126,7 @@
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
- View inflatedView = inflater.inflate(R.layout.frag_menu, parent, false);
-
- ArrayAdapter<String> paramAdapter = new ArrayAdapter<String>(getActivity(), R.layout.item_menu, getResources().getStringArray(
- R.array.menu_items_param));
- sections = (ListView) inflatedView.findViewById(R.id.listView);
- sections.setAdapter(paramAdapter);
- backToHome();
- sections.setOnItemClickListener(new OnItemClickListener() {
-
- @Override
- public void onItemClick(AdapterView<?> arg0, View selected, int pos, long arg3) {
- mCallbacks.onSectionSelected(pos);
- }
- });
+ View inflatedView = inflater.inflate(R.layout.frag_menu_header, parent, false);
spinnerAccounts = (Spinner) inflatedView.findViewById(R.id.account_selection);
mAccountAdapter = new AccountSelectionAdapter(getActivity(), new ArrayList<Account>());
@@ -162,8 +135,9 @@
@Override
public void onItemSelected(AdapterView<?> arg0, View view, int pos, long arg3) {
+ Log.w(TAG, "onItemSelected -> setSelectedAccount" + pos);
mAccountAdapter.setSelectedAccount(pos);
- view.findViewById(R.id.account_selected).setVisibility(View.GONE);
+ //view.findViewById(R.id.account_selected).setVisibility(View.GONE);
try {
mCallbacks.getService().setAccountOrder(mAccountAdapter.getAccountOrder());
} catch (RemoteException e) {
@@ -173,6 +147,7 @@
@Override
public void onNothingSelected(AdapterView<?> arg0) {
+ Log.w(TAG, "onNothingSelected -1");
mAccountAdapter.setSelectedAccount(-1);
}
});
@@ -191,6 +166,8 @@
}
public Account getSelectedAccount() {
+ Log.w(TAG, "getSelectedAccount " + mAccountAdapter.getSelectedAccount().getAccountID());
+
return mAccountAdapter.getSelectedAccount();
}
@@ -207,6 +184,8 @@
@Override
public void accountStateChanged(String accoundID, String state, int code) {
+ Log.w(TAG, "accountStateChanged " + accoundID + " " + state);
+
if (mAccountAdapter != null)
mAccountAdapter.updateAccount(accoundID, state, code);
}
@@ -222,6 +201,7 @@
public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
mAccountAdapter.removeAll();
ArrayList<Account> accounts = data.getParcelableArrayList(AccountsLoader.ACCOUNTS);
+ accounts.add((Account)data.getParcelable(AccountsLoader.ACCOUNT_IP2IP));
mAccountAdapter.addAll(accounts);
}
@@ -230,8 +210,4 @@
}
- public void backToHome() {
- sections.setItemChecked(0, true);
- }
-
}
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java
index 9d51c78..cb331de 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java
@@ -36,7 +36,7 @@
import java.util.List;
import android.app.Dialog;
-import android.support.v4.app.DialogFragment;
+import android.app.DialogFragment;
import cx.ring.R;
import cx.ring.loaders.ContactsLoader;
import cx.ring.model.Conference;
diff --git a/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java b/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java
index 0f9eb39..962fe02 100644
--- a/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java
+++ b/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java
@@ -35,10 +35,10 @@
import java.util.HashMap;
import java.util.Map;
-import android.support.v4.content.AsyncTaskLoader;
import cx.ring.model.account.Account;
import cx.ring.service.ISipService;
+import android.content.AsyncTaskLoader;
import android.content.Context;
import android.os.Bundle;
import android.os.RemoteException;
@@ -78,6 +78,7 @@
if (id.contentEquals(ACCOUNT_IP2IP)) {
details = (HashMap<String, String>) service.getAccountDetails(id);
IP2IP = new Account(ACCOUNT_IP2IP, details, new ArrayList<Map<String, String>>()); // Empty credentials
+ //accounts.add(IP2IP);
continue;
}
details = (Map<String, String>) service.getAccountDetails(id);
diff --git a/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java b/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java
index 5d878aa..b6712ea 100644
--- a/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java
+++ b/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java
@@ -31,10 +31,10 @@
package cx.ring.loaders;
+import android.content.AsyncTaskLoader;
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract;
-import android.support.v4.content.AsyncTaskLoader;
import cx.ring.history.HistoryCall;
import cx.ring.history.HistoryEntry;
import cx.ring.history.HistoryManager;
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..de713bc
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..694179b
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..69cbb1e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..5a8b5d0
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..2e86cc2
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..a81eeb9
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..142d715
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..b439931
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..4d1cbca
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..3856041
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..ca148fc
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..c2e9ffe
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..dcdcfc0
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..46ed12a
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..d18997c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..142d715
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..4244b5e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..67bb598
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..9829698
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..2994e7c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..04e2b26
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..c8f86b9
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..0b080a1
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..0a66529
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..4f5005d
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..0fdced8
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..abe2573
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..1fa4b3c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..d66401c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..74b5ecb
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..0a66529
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..d72a9b9
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..7332c75
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..d64c22e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..830fb7e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..b9f2b92
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..8fac2c3
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..4192281
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..56a5bc8
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..b5cfb69
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/layout/activity_home.xml b/ring-android/app/src/main/res/layout/activity_home.xml
index 66422c9..5bbadcc 100644
--- a/ring-android/app/src/main/res/layout/activity_home.xml
+++ b/ring-android/app/src/main/res/layout/activity_home.xml
@@ -1,9 +1,9 @@
-<?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>
-
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
@@ -31,22 +31,66 @@
-->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
- android:layout_height="match_parent" >
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<cx.ring.views.SlidingUpPanelLayout
android:id="@+id/contact_panel"
android:layout_width="match_parent"
- android:layout_height="match_parent" >
+ android:layout_height="match_parent">
- <FrameLayout
- android:id="@+id/main_frame"
+ <RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="?android:attr/actionBarSize"
- android:orientation="vertical" >
- </FrameLayout>
+ 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/sfl_dark_blue"
+ android:elevation="4dp"
+ android:gravity="bottom"
+ android:longClickable="true"
+ android:minHeight="?android:attr/actionBarSize"
+ android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+ android:theme="@style/MyActionBar"
+ app:contentInsetStart="72dp"
+ app:elevation="4dp"
+ app:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+ app:titleMarginBottom="16dp" />
+
+ <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_centerVertical="true"
+ android:layout_marginBottom="-20dp"
+ android:layout_marginLeft="16dp"
+ android:layout_marginStart="20dp"
+ android:elevation="4dp"
+ android:visibility="gone"
+ app:elevation="4dp"
+ app:fabSize="mini" />
+ </RelativeLayout>
<FrameLayout
android:id="@+id/contacts_frame"
@@ -57,13 +101,15 @@
android:focusableInTouchMode="true" />
</cx.ring.views.SlidingUpPanelLayout>
- <FrameLayout
+ <android.support.design.widget.NavigationView
android:id="@+id/left_drawer"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
- android:choiceMode="singleChoice"
- android:divider="@android:color/transparent"
- android:dividerHeight="0dp" />
+ android:fitsSystemWindows="true"
+ android:theme="@style/AppThemeBase"
+ android:windowBackground="@color/white"
+ app:itemTextColor="?android:textColorPrimary"
+ app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_accounts_list.xml b/ring-android/app/src/main/res/layout/frag_accounts_list.xml
index c0fee12..22d71dc 100644
--- a/ring-android/app/src/main/res/layout/frag_accounts_list.xml
+++ b/ring-android/app/src/main/res/layout/frag_accounts_list.xml
@@ -1,75 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:dslv="http://schemas.android.com/apk/res/cx.ring"
+ xmlns:dslv="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/normal_account_list"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@color/sfl_another_blue"
- android:paddingLeft="5dp"
- android:singleLine="true"
- android:text="@string/preference_section1"
- android:textAppearance="@android:style/TextAppearance.Holo.Medium.Inverse"
- android:textColor="@color/white" />
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
-
- <cx.ring.views.dragsortlv.DragSortListView
- android:id="@+id/accounts_list"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@color/white"
- android:choiceMode="multipleChoice"
- android:dividerHeight="1px"
- android:visibility="gone"
- dslv:collapsed_height="1px"
- dslv:drag_enabled="true"
- dslv:drag_handle_id="@id/drag_handle"
- dslv:drag_scroll_start="0.33"
- dslv:drag_start_mode="onDown"
- dslv:float_alpha="0.6"
- dslv:float_background_color="@color/sfl_action_blue"
- dslv:remove_enabled="false"
- dslv:slide_shuffle_speed="0.3" />
-
- <ProgressBar
- android:id="@+id/loading_spinner"
- style="?android:progressBarStyle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="15dp"
- android:layout_centerInParent="true"
- android:layout_gravity="center" />
+ android:orientation="vertical"
+ android:background="@color/white"
+ >
<TextView
- android:id="@+id/empty_account_list"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:layout_gravity="center"
- android:gravity="center"
- android:text="@string/empty_account_list"
- android:textSize="40sp"
- android:visibility="gone" >
- </TextView>
- </RelativeLayout>
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:paddingLeft="72dp"
+ android:text="Comptes"
+ style="@style/Subheader"
+ android:gravity="center_vertical" />
- <TextView
- android:id="@+id/ip2ip_account"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@color/sfl_another_blue"
- android:paddingLeft="5dp"
- android:singleLine="true"
- android:text="@string/ip2ip_account"
- android:textAppearance="@android:style/TextAppearance.Holo.Medium.Inverse"
- android:textColor="@color/white" />
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+
+ <cx.ring.views.dragsortlv.DragSortListView
+ android:id="@+id/accounts_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@color/white"
+ android:choiceMode="multipleChoice"
+ android:dividerHeight="1px"
+ android:visibility="gone"
+ dslv:collapsed_height="1px"
+ dslv:drag_enabled="true"
+ dslv:drag_handle_id="@id/drag_handle"
+ dslv:drag_scroll_start="0.33"
+ dslv:drag_start_mode="onDown"
+ dslv:float_alpha="0.6"
+ dslv:float_background_color="@color/sfl_action_blue"
+ dslv:remove_enabled="false"
+ dslv:slide_shuffle_speed="0.3" />
+
+ <ProgressBar
+ android:id="@+id/loading_spinner"
+ style="?android:progressBarStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="5dp"
+ android:layout_centerInParent="true"
+ android:layout_gravity="center"
+ android:indeterminate="false" />
+
+ <TextView
+ android:id="@+id/empty_account_list"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_gravity="center"
+ android:gravity="center"
+ android:text="@string/empty_account_list"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:visibility="gone">
+ </TextView>
+
+ </RelativeLayout>
<ListView
android:id="@+id/ip2ip"
diff --git a/ring-android/app/src/main/res/layout/frag_menu.xml b/ring-android/app/src/main/res/layout/frag_menu.xml
deleted file mode 100644
index c643ed9..0000000
--- a/ring-android/app/src/main/res/layout/frag_menu.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/light"
- android:orientation="vertical"
- android:paddingTop="?android:attr/actionBarSize" >
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="100dp"
- android:background="@color/sfl_blue_0"
- android:padding="5dp" >
-
- <ImageView
- android:id="@+id/user_photo"
- android:layout_width="70dp"
- android:layout_height="70dp"
- android:layout_alignParentLeft="true"
- android:layout_centerVertical="true" />
-
- <TextView
- android:id="@+id/user_name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_marginLeft="15dp"
- android:layout_toRightOf="@+id/user_photo"
- android:singleLine="true"
- android:textColor="@color/white"
- android:textSize="20sp"
- android:textStyle="bold" />
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/user_name"
- android:layout_alignParentBottom="true"
- android:layout_alignRight="@+id/user_name"
- android:layout_below="@+id/user_name" >
-
- <Spinner
- android:id="@+id/account_selection"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@color/sfl_blue_0" />
-
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_centerVertical="true"
- android:clickable="false"
- android:focusable="false"
- android:src="@drawable/ic_action_expand_light" />
- </RelativeLayout>
- </RelativeLayout>
-
- <ListView
- android:id="@+id/listView"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:choiceMode="singleChoice"
- android:listSelector="@drawable/navigation_selector" >
- </ListView>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_menu_header.xml b/ring-android/app/src/main/res/layout/frag_menu_header.xml
new file mode 100644
index 0000000..43686ad
--- /dev/null
+++ b/ring-android/app/src/main/res/layout/frag_menu_header.xml
@@ -0,0 +1,42 @@
+<?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="wrap_content"
+ android:background="@color/sfl_blue_0"
+ android:paddingBottom="8dp"
+ android:paddingRight="5dp"
+ android:paddingTop="40dp"
+ android:theme="@style/MenuHeader"
+ android:paddingLeft="16dp">
+
+ <ImageView
+ android:id="@+id/user_photo"
+ android:layout_width="70dp"
+ android:layout_height="70dp"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:layout_marginBottom="8dp" />
+
+ <TextView
+ android:id="@+id/user_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentStart="true"
+ android:layout_below="@+id/user_photo"
+ android:singleLine="true"
+ android:textSize="20sp"
+ android:textStyle="bold"
+ android:textColor="@color/white" />
+
+ <Spinner
+ android:id="@+id/account_selection"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_below="@+id/user_name"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_account.xml b/ring-android/app/src/main/res/layout/item_account.xml
index 3f08521..422d7ef 100644
--- a/ring-android/app/src/main/res/layout/item_account.xml
+++ b/ring-android/app/src/main/res/layout/item_account.xml
@@ -1,9 +1,8 @@
<?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="wrap_content"
- android:background="@color/sfl_blue_0"
- android:padding="4dp" >
+ android:layout_height="72dp"
+ android:padding="16dp">
<TextView
android:id="@+id/account_alias"
@@ -11,30 +10,24 @@
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginBottom="4dp"
- android:layout_marginLeft="4dp"
- android:textAppearance="?android:attr/textAppearanceLargeInverse" />
-
- <TextView
+ android:textAppearance="@style/ListPrimary" />
+
+ <TextView
android:id="@+id/account_host"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/account_alias"
- android:layout_marginBottom="4dp"
- android:layout_marginLeft="4dp"
- android:textAppearance="?android:attr/textAppearanceSmallInverse" />
-
+ android:textAppearance="@style/ListSecondary" />
<ImageView
- android:id="@+id/account_selected"
+ android:id="@+id/error_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
- android:background="@null"
android:clickable="false"
android:focusable="false"
- android:src="@drawable/ic_action_accept" />
+ android:src="@drawable/ic_error_white_24dp" />
</RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_account_pref.xml b/ring-android/app/src/main/res/layout/item_account_pref.xml
index 8785b10..89193fe 100644
--- a/ring-android/app/src/main/res/layout/item_account_pref.xml
+++ b/ring-android/app/src/main/res/layout/item_account_pref.xml
@@ -12,7 +12,7 @@
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dp"
- android:src="@drawable/handle"/>
+ android:src="@drawable/ic_reorder_black_24dp"/>
<TextView
android:id="@+id/account_alias"
diff --git a/ring-android/app/src/main/res/layout/item_account_selected.xml b/ring-android/app/src/main/res/layout/item_account_selected.xml
new file mode 100644
index 0000000..ba3b8c0
--- /dev/null
+++ b/ring-android/app/src/main/res/layout/item_account_selected.xml
@@ -0,0 +1,38 @@
+<?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="72dp"
+ android:paddingTop="16dp"
+ android:paddingRight="16dp"
+ android:minHeight="72dp"
+ android:paddingBottom="16dp">
+
+ <TextView
+ android:id="@+id/account_alias"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentTop="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@color/white" />
+
+ <TextView
+ android:id="@+id/account_host"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_below="@+id/account_alias"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/white" />
+
+ <ImageView
+ android:id="@+id/error_indicator"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:clickable="false"
+ android:focusable="false"
+ android:src="@drawable/ic_error_white_24dp" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_codec.xml b/ring-android/app/src/main/res/layout/item_codec.xml
index e91cb8a..a604aa1 100644
--- a/ring-android/app/src/main/res/layout/item_codec.xml
+++ b/ring-android/app/src/main/res/layout/item_codec.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@id/container"
+ android:id="@+id/codec_container"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight" >
diff --git a/ring-android/app/src/main/res/layout/menuheader.xml b/ring-android/app/src/main/res/layout/menuheader.xml
index 3509b84..49dd54d 100644
--- a/ring-android/app/src/main/res/layout/menuheader.xml
+++ b/ring-android/app/src/main/res/layout/menuheader.xml
@@ -1,6 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
+ <fragment
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:name="cx.ring.fragments.MenuFragment"
+ android:id="@+id/accountselector"
+ tools:layout="@layout/frag_menu_header" />
</LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/menu/drawer.xml b/ring-android/app/src/main/res/menu/drawer.xml
new file mode 100644
index 0000000..0c0a18b
--- /dev/null
+++ b/ring-android/app/src/main/res/menu/drawer.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <group android:checkableBehavior="single">
+ <item
+ android:id="@+id/menuitem_home"
+ android:checked="true"
+ android:icon="@drawable/ic_home_black_48dp"
+ android:title="@string/menu_item_home"/>
+ <item
+ android:id="@+id/menuitem_accounts"
+ android:icon="@drawable/ic_group_black_48dp"
+ android:title="@string/menu_item_accounts"/>
+ <item
+ android:id="@+id/menuitem_about"
+ android:icon="@drawable/ic_info_black_48dp"
+ android:title="@string/menu_item_about"/>
+ </group>
+</menu>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values-fr/strings_account.xml b/ring-android/app/src/main/res/values-fr/strings_account.xml
index 23edba2..92971c3 100644
--- a/ring-android/app/src/main/res/values-fr/strings_account.xml
+++ b/ring-android/app/src/main/res/values-fr/strings_account.xml
@@ -36,7 +36,7 @@
<string name="prompt_hostname">Nom du serveur</string>
<string name="prompt_username">Nom d\'utilisateur</string>
<string name="prompt_password">Mot de passe</string>
- <string name="action_create"><b>Enregistrer le compte</b></string>
+ <string name="action_create">Ajouter le compte</string>
<string name="action_create_short">Enregistrer</string>
<string name="error_field_required">Ce champ est requis</string>
diff --git a/ring-android/app/src/main/res/values-v21/styles.xml b/ring-android/app/src/main/res/values-v21/styles.xml
index 00080de..cbf5228 100644
--- a/ring-android/app/src/main/res/values-v21/styles.xml
+++ b/ring-android/app/src/main/res/values-v21/styles.xml
@@ -1,38 +1,24 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="AppThemeWithOverlay" parent="android:Theme.Material.Light.DarkActionBar">
+ <style name="AppThemeWithOverlay" parent="AppThemeBase">
<item name="android:actionBarStyle">@style/MyActionBar</item>
- <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
<item name="android:windowActionBarOverlay">true</item>
+ <item name="windowActionBarOverlay">true</item>
<item name="android:windowBackground">@drawable/bg_72</item>
- <item name="android:activatedBackgroundIndicator">@drawable/navigation_selector</item>
+ <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+ <item name="android:statusBarColor">@android:color/transparent</item>
+ <item name="android:windowTranslucentStatus">true</item>
</style>
- <style name="AccountFormContainer">
- <item name="android:layout_width">match_parent</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:padding">16dp</item>
+ <style name="AppThemeWithoutOverlay" parent="@android:style/Theme.Material.Light.DarkActionBar">
+ <item name="android:actionBarStyle">@style/NativeActionBar</item>
</style>
- <style name="AppThemeWithoutOverlay" parent="android:Theme.Material.Light.DarkActionBar">
- <item name="android:actionBarStyle">@style/MyActionBar</item>
- <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
- <item name="android:windowActionBarOverlay">false</item>
- </style>
-
- <style name="MyActionBar" parent="@android:style/Widget.ActionBar">
+ <style name="NativeActionBar" parent="@android:style/Widget.ActionBar">
<item name="android:background">@color/sfl_dark_blue</item>
- <item name="android:titleTextStyle">@style/MyActionBar.Text</item>
+ <item name="android:titleTextStyle">@style/NativeActionBar.Text</item>
</style>
- <style name="MyActionBar.Text" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
- <item name="android:textColor">@color/white</item>
- <item name="android:textSize">18sp</item>
+ <style name="NativeActionBar.Text" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
</style>
-
- <style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Material.Widget.ActionBar.Menu">
- <item name="android:textColor">#FF0</item>
- <item name="android:textSize">20sp</item>
- </style>
-
</resources>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values/strings_account.xml b/ring-android/app/src/main/res/values/strings_account.xml
index e769eb4..974290f 100644
--- a/ring-android/app/src/main/res/values/strings_account.xml
+++ b/ring-android/app/src/main/res/values/strings_account.xml
@@ -36,7 +36,7 @@
<string name="prompt_hostname">Hostname</string>
<string name="prompt_username">Username</string>
<string name="prompt_password">Password</string>
- <string name="action_create"><b>Register Account</b></string>
+ <string name="action_create">Add account</string>
<string name="action_create_short">Register</string>
<string name="error_field_required">This field is required</string>
diff --git a/ring-android/app/src/main/res/values/styles.xml b/ring-android/app/src/main/res/values/styles.xml
index baab018..89379e3 100644
--- a/ring-android/app/src/main/res/values/styles.xml
+++ b/ring-android/app/src/main/res/values/styles.xml
@@ -1,9 +1,15 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="AppThemeWithOverlay" parent="android:Theme.Holo.Light.DarkActionBar">
+ <style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
+
+ </style>
+
+ <style name="AppThemeWithOverlay" parent="AppThemeBase">
+
<item name="android:actionBarStyle">@style/MyActionBar</item>
- <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
+
<item name="android:windowActionBarOverlay">true</item>
+ <item name="windowActionBarOverlay">true</item>
<item name="android:windowBackground">@drawable/bg_72</item>
<item name="android:activatedBackgroundIndicator">@drawable/navigation_selector</item>
</style>
@@ -14,25 +20,47 @@
<item name="android:padding">16dp</item>
</style>
- <style name="AppThemeWithoutOverlay" parent="android:Theme.Holo.Light.DarkActionBar">
- <item name="android:actionBarStyle">@style/MyActionBar</item>
- <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
- <item name="android:windowActionBarOverlay">false</item>
+ <style name="AppThemeWithoutOverlay" parent="@android:style/Theme.Holo.Light.DarkActionBar">
+ <item name="android:actionBarStyle">@style/NativeActionBar</item>
</style>
- <style name="MyActionBar" parent="@android:style/Widget.ActionBar">
+ <style name="NativeActionBar" parent="@android:style/Widget.ActionBar">
<item name="android:background">@color/sfl_dark_blue</item>
- <item name="android:titleTextStyle">@style/MyActionBar.Text</item>
+ <item name="titleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
+
</style>
- <style name="MyActionBar.Text" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
- <item name="android:textColor">@color/white</item>
- <item name="android:textSize">18sp</item>
+ <style name="NativeActionBar.Text" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
</style>
- <style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
- <item name="android:textColor">#FF0</item>
- <item name="android:textSize">20sp</item>
+ <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
+ <item name="android:textColorPrimary">@android:color/primary_text_dark</item>
+ <item name="android:textColorSecondary">@android:color/secondary_text_dark</item>
+ <item name="selectableItemBackground">?android:selectableItemBackground</item>
+ <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
+ <item name="actionMenuTextColor">@color/abc_primary_text_material_light</item>
+ </style>
+ <style name="MenuHeader" parent="Theme.AppCompat.Light.NoActionBar">
+ <item name="android:textColorPrimary">@android:color/primary_text_dark</item>
+ <item name="android:textColorSecondary">@android:color/secondary_text_dark</item>
+ </style>
+
+ <style name="Subheader">
+ <item name="android:textSize">14sp</item>
+ <item name="android:typeface">normal</item>
+ <item name="android:textColor">@android:color/tertiary_text_light</item>
+ </style>
+
+ <style name="ListPrimary">
+ <item name="android:textSize">16sp</item>
+ <item name="android:typeface">normal</item>
+ <item name="android:textColor">@android:color/primary_text_light</item>
+ </style>
+
+ <style name="ListSecondary">
+ <item name="android:textSize">14sp</item>
+ <item name="android:typeface">normal</item>
+ <item name="android:textColor">@android:color/tertiary_text_light</item>
</style>
</resources>
\ No newline at end of file