general menu/account list switch implemented (open: populate account list)

This commit is contained in:
Andy Scherzinger 2016-03-23 22:51:37 +01:00
parent f82c4d96ba
commit f41e567b90
9 changed files with 62 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -17,20 +17,47 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<!--
standard menu
all items in this group MUST have orderInCategory="0" set
-->
<group android:id="@+id/drawer_menu_standard" android:checkableBehavior="single">
<item
android:orderInCategory="0"
android:id="@+id/nav_all_files"
android:icon="@drawable/ic_folder_open"
android:title="@string/drawer_item_all_files"/>
<item
android:orderInCategory="0"
android:id="@+id/nav_uploads"
android:icon="@drawable/ic_uploads"
android:title="Uploads"/>
</group>
<!-- add an id to the group to get a separator line -->
<!--
account list placeholder
all items in this group MUST have orderInCategory="2" set
all accounts are dynamically added with orderInCategory="1" set
-->
<group android:id="@+id/drawer_menu_accounts">
<item
android:orderInCategory="2"
android:id="@+id/drawer_menu_account_add"
android:icon="@drawable/ic_account_plus"
android:title="@string/prefs_add_account"/>
<item
android:orderInCategory="2"
android:id="@+id/drawer_menu_account_manage"
android:icon="@drawable/ic_settings"
android:title="@string/drawer_manage_accounts"/>
</group>
<!--
all items in this group MUST have orderInCategory="3" set
-->
<group>
<item
android:orderInCategory="3"
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/actionbar_settings"/>

View file

@ -27,6 +27,7 @@
<item name="android:alertDialogTheme">@style/Theme.ownCloud.Dialog</item>
<item name="alertDialogTheme">@style/ownCloud.AlertDialog</item>
<item name="searchViewStyle">@style/ownCloud.SearchView</item>
<item name="android:listDivider">@color/transparent</item>
</style>
<style name="Theme.ownCloud.Toolbar.Drawer">

View file

@ -44,8 +44,13 @@
<item name="alertDialogTheme">@style/ownCloud.AlertDialog</item>
<item name="android:windowBackground">@color/background_color</item>
<item name="searchViewStyle">@style/ownCloud.SearchView</item>
<item name="android:listDivider">@color/transparent</item>
</style>
<!-- separate style for Drawer activities needed for v21+ theming -->
<style name="Theme.ownCloud.Toolbar.Drawer">
</style>
<style name="Theme.ownCloud.noActionBar.Login" parent="Theme.ownCloud.Toolbar">
<item name="colorAccent">@color/white</item>
</style>

View file

@ -5,7 +5,7 @@ import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
/**
@ -35,7 +35,9 @@ public class TextDrawable extends Drawable {
@Override
public void draw(Canvas canvas) {
canvas.drawRect(0,-20,20,40,bg);
RectF rf = new RectF(0,24,24,0);
canvas.drawRoundRect(rf,24,24,bg);
//canvas.drawRect(0,-20,20,40,bg);
canvas.drawText(text, 4, 6, paint);
}

View file

@ -1,5 +1,6 @@
package com.owncloud.android.ui.activity;
import android.accounts.AccountManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
@ -7,13 +8,17 @@ import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.ui.TextDrawable;
/**
* Base class to handle setup of the drawer implementation.
@ -22,6 +27,7 @@ public abstract class DrawerActivity extends ToolbarActivity {
// Navigation Drawer
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mDrawerToggle;
private NavigationView mNavigationView;
private ImageView mAccountChooserToggle;
private boolean mIsAccountChooserActive;
@ -32,9 +38,9 @@ public abstract class DrawerActivity extends ToolbarActivity {
protected void setupDrawer() {
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
if (navigationView != null) {
setupDrawerContent(navigationView);
mNavigationView = (NavigationView) findViewById(R.id.nav_view);
if (mNavigationView != null) {
setupDrawerContent(mNavigationView);
mAccountChooserToggle = (ImageView) findNavigationViewChildById(R.id.drawer_account_chooser_toogle);
mAccountChooserToggle.setImageResource(R.drawable.ic_down);
mIsAccountChooserActive = false;
@ -137,11 +143,20 @@ public abstract class DrawerActivity extends ToolbarActivity {
Preferences.class);
startActivity(settingsIntent);
break;
case R.id.drawer_menu_account_add:
AccountManager am = AccountManager.get(getApplicationContext());
am.addAccount(MainApp.getAccountType(), null, null, null, DrawerActivity.this,
null, null);
case R.id.drawer_menu_account_manage:
Toast.makeText(getApplicationContext(),"Not implemented yet",Toast.LENGTH_SHORT);
}
return true;
}
});
// hide accounts
mNavigationView.getMenu().setGroupVisible(R.id.drawer_menu_accounts, false);
}
/**
@ -236,9 +251,14 @@ public abstract class DrawerActivity extends ToolbarActivity {
if (mIsAccountChooserActive) {
// TODO close accounts list and display drawer menu again
mAccountChooserToggle.setImageResource(R.drawable.ic_down);
mNavigationView.getMenu().setGroupVisible(R.id.drawer_menu_accounts, false);
mNavigationView.getMenu().setGroupVisible(R.id.drawer_menu_standard, true);
} else {
// TODO show accounts list
mAccountChooserToggle.setImageResource(R.drawable.ic_up);
mNavigationView.getMenu().setGroupVisible(R.id.drawer_menu_accounts, true);
mNavigationView.getMenu().setGroupVisible(R.id.drawer_menu_standard, false);
}
mIsAccountChooserActive = !mIsAccountChooserActive;