From: David A. Velasco Date: Fri, 29 May 2015 11:46:30 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/navigationDrawer_basic' into navigationDrawer_basic X-Git-Tag: oc-android-1.7.2~1^2~23^2~23 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/41b5eb13b123ab749c7715866a2d526c16e386cd?hp=27148acf1674724fd0d0d9f1d922444adc6e3054 Merge remote-tracking branch 'origin/navigationDrawer_basic' into navigationDrawer_basic --- diff --git a/res/layout/drawer.xml b/res/layout/drawer.xml index 249dd7dd..07ad5ee0 100644 --- a/res/layout/drawer.xml +++ b/res/layout/drawer.xml @@ -28,32 +28,33 @@ android:orientation="vertical" android:fitsSystemWindows="true"> - + + + + + - + + + + + - + + + + + + + + - + - + + + + - @string/prefs_accounts + + @string/drawer_item_all_files @string/actionbar_settings @@ -29,7 +30,8 @@ - @string/drawer_item_accounts + + @string/drawer_item_all_files @string/drawer_item_settings diff --git a/res/values/strings.xml b/res/values/strings.xml index 8a7d8139..a8ddd76c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -20,7 +20,8 @@ - Accounts + + All files diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index e792df85..3e39f2ea 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -44,10 +44,8 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.AdapterView; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; -import android.widget.TextView; import android.widget.Toast; import com.owncloud.android.BuildConfig; @@ -59,15 +57,14 @@ import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.FileOperationsHelper; import com.owncloud.android.files.services.FileDownloader; -import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; +import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.lib.resources.files.FileUtils; import com.owncloud.android.operations.CreateShareOperation; import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareLinkOperation; @@ -77,7 +74,6 @@ import com.owncloud.android.ui.NavigationDrawerItem; import com.owncloud.android.ui.adapter.NavigationDrawerListAdapter; import com.owncloud.android.ui.dialog.LoadingDialog; import com.owncloud.android.ui.dialog.SharePasswordDialogFragment; -import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.ErrorMessageAdapter; import java.util.ArrayList; @@ -157,7 +153,8 @@ public class FileActivity extends ActionBarActivity protected NavigationDrawerListAdapter mNavigationDrawerAdapter = null; - protected boolean mShowAccounts = false; + // TODO re-enable when "Accounts" is available in Navigation Drawer +// protected boolean mShowAccounts = false; /** * Loads the ownCloud {@link Account} and main {@link OCFile} to be handled by the instance of @@ -304,19 +301,20 @@ public class FileActivity extends ActionBarActivity LinearLayout navigationDrawerLayout = (LinearLayout) findViewById(R.id.left_drawer); mDrawerList = (ListView) navigationDrawerLayout.findViewById(R.id.drawer_list); - // load Account in the Drawer Title - // User-Icon - ImageView userIcon = (ImageView) navigationDrawerLayout.findViewById(R.id.drawer_userIcon); - userIcon.setImageResource(DisplayUtils.getSeasonalIconId()); - - // Username - TextView username = (TextView) navigationDrawerLayout.findViewById(R.id.drawer_username); - Account account = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext()); - - if (account != null) { - int lastAtPos = account.name.lastIndexOf("@"); - username.setText(account.name.substring(0, lastAtPos)); - } + // TODO re-enable when "Accounts" is available in Navigation Drawer +// // load Account in the Drawer Title +// // User-Icon +// ImageView userIcon = (ImageView) navigationDrawerLayout.findViewById(R.id.drawer_userIcon); +// userIcon.setImageResource(DisplayUtils.getSeasonalIconId()); +// +// // Username +// TextView username = (TextView) navigationDrawerLayout.findViewById(R.id.drawer_username); +// Account account = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext()); +// +// if (account != null) { +// int lastAtPos = account.name.lastIndexOf("@"); +// username.setText(account.name.substring(0, lastAtPos)); +// } // load slide menu items mDrawerTitles = getResources().getStringArray(R.array.drawer_items); @@ -328,10 +326,12 @@ public class FileActivity extends ActionBarActivity // nav drawer items mDrawerItems = new ArrayList(); // adding nav drawer items to array + // TODO re-enable when "Accounts" is available in Navigation Drawer // Accounts - mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0], mDrawerContentDescriptions[0])); + // mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0], + // mDrawerContentDescriptions[0])); // All Files - mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[1], mDrawerContentDescriptions[1])); + mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0], mDrawerContentDescriptions[0])); // TODO Enable when "On Device" is recovered // On Device @@ -339,11 +339,11 @@ public class FileActivity extends ActionBarActivity // mDrawerContentDescriptions[2])); // Settings - mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2], mDrawerContentDescriptions[2])); + mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[1], mDrawerContentDescriptions[1])); // Logs if (BuildConfig.DEBUG) { - mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[3], - mDrawerContentDescriptions[3])); + mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2], + mDrawerContentDescriptions[2])); } // setting the nav drawer list adapter @@ -372,6 +372,7 @@ public class FileActivity extends ActionBarActivity super.onDrawerOpened(drawerView); getSupportActionBar().setTitle(R.string.drawer_open); getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + mDrawerToggle.setDrawerIndicatorEnabled(true); invalidateOptionsMenu(); } }; @@ -818,9 +819,10 @@ public class FileActivity extends ActionBarActivity startActivity(i); } - public void closeDrawer() { - mDrawerLayout.closeDrawers(); - } +// TODO re-enable when "Accounts" is available in Navigation Drawer +// public void closeDrawer() { +// mDrawerLayout.closeDrawers(); +// } public void allFilesOption(){ restart(); @@ -829,17 +831,19 @@ public class FileActivity extends ActionBarActivity private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - if (mShowAccounts && position > 0){ - position = position - 1; - } + // TODO re-enable when "Accounts" is available in Navigation Drawer +// if (mShowAccounts && position > 0){ +// position = position - 1; +// } switch (position){ - case 0: // Accounts - mShowAccounts = !mShowAccounts; - mNavigationDrawerAdapter.setShowAccounts(mShowAccounts); - mNavigationDrawerAdapter.notifyDataSetChanged(); - break; + // TODO re-enable when "Accounts" is available in Navigation Drawer +// case 0: // Accounts +// mShowAccounts = !mShowAccounts; +// mNavigationDrawerAdapter.setShowAccounts(mShowAccounts); +// mNavigationDrawerAdapter.notifyDataSetChanged(); +// break; - case 1: // All Files + case 0: // All Files allFilesOption(); mDrawerLayout.closeDrawers(); break; @@ -850,13 +854,13 @@ public class FileActivity extends ActionBarActivity // mDrawerLayout.closeDrawers(); // break; - case 2: // Settings + case 1: // Settings Intent settingsIntent = new Intent(getApplicationContext(), Preferences.class); startActivity(settingsIntent); break; - case 3: // Logs + case 2: // Logs Intent loggerIntent = new Intent(getApplicationContext(), LogHistoryActivity.class); startActivity(loggerIntent); diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 67461aae..effe3b89 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -54,10 +54,7 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; import android.view.Window; -import android.widget.ArrayAdapter; -import android.widget.TextView; import android.widget.Toast; import com.owncloud.android.MainApp; @@ -77,7 +74,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.lib.resources.files.FileUtils; import com.owncloud.android.operations.CreateFolderOperation; import com.owncloud.android.operations.CreateShareOperation; import com.owncloud.android.operations.MoveFileOperation; @@ -500,16 +496,14 @@ public class FileDisplayActivity extends HookActivity case android.R.id.home: { FileFragment second = getSecondFragment(); OCFile currentDir = getCurrentDir(); - if((currentDir != null && currentDir.getParentId() != 0) || + if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) { + mDrawerLayout.closeDrawer(GravityCompat.START); + } else if((currentDir != null && currentDir.getParentId() != 0) || (second != null && second.getFile() != null)) { onBackPressed(); } else { - if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) { - mDrawerLayout.closeDrawer(GravityCompat.START); - } else { - mDrawerLayout.openDrawer(GravityCompat.START); - } + mDrawerLayout.openDrawer(GravityCompat.START); } break; } diff --git a/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java b/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java index fdc19711..78d0693e 100644 --- a/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java @@ -21,34 +21,23 @@ package com.owncloud.android.ui.adapter; -import java.math.BigInteger; -import java.security.MessageDigest; -import java.util.ArrayList; -import java.util.Locale; - import android.accounts.Account; import android.accounts.AccountManager; import android.content.Context; -import android.graphics.Color; -import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; -import android.widget.RadioButton; -import android.widget.RadioGroup; -import android.widget.RadioGroup.LayoutParams; import android.widget.TextView; import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.authentication.AccountUtils; -import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.NavigationDrawerItem; -import com.owncloud.android.ui.TextDrawable; import com.owncloud.android.ui.activity.FileActivity; -import com.owncloud.android.utils.BitmapUtils; + +import java.util.ArrayList; public class NavigationDrawerListAdapter extends BaseAdapter { @@ -121,92 +110,93 @@ public class NavigationDrawerListAdapter extends BaseAdapter { return view; } - + // TODO re-enable when "Accounts" is available in Navigation Drawer // Account - if (mAll.get(position) instanceof Account[]){ - final View view = inflator.inflate(R.layout.drawer_account_group, null); - - final RadioGroup group = (RadioGroup) view.findViewById(R.id.drawer_radio_group); - - for (Account account : mAccounts) { - RadioButton rb = new RadioButton(mContext); - - rb.setText(account.name); - rb.setContentDescription(account.name); - rb.setTextColor(Color.BLACK); - rb.setEllipsize(TextUtils.TruncateAt.MIDDLE); - rb.setSingleLine(); - rb.setCompoundDrawablePadding(30); - - - try { - // using adapted algorithm from /core/js/placeholder.js:50 - int lastAtPos = account.name.lastIndexOf("@"); - String username = account.name.substring(0, lastAtPos); - byte[] seed = username.getBytes("UTF-8"); - MessageDigest md = MessageDigest.getInstance("MD5"); -// Integer seedMd5Int = Math.abs(new String(Hex.encodeHex(seedMd5)) -// .hashCode()); - Integer seedMd5Int = String.format(Locale.ROOT, "%032x", - new BigInteger(1, md.digest(seed))).hashCode(); - - double maxRange = java.lang.Integer.MAX_VALUE; - float hue = (float) (seedMd5Int / maxRange * 360); - - int[] rgb = BitmapUtils.HSLtoRGB(hue, 90.0f, 65.0f, 1.0f); - - TextDrawable text = new TextDrawable(username.substring(0, 1).toUpperCase(), - rgb[0], rgb[1], rgb[2]); - rb.setCompoundDrawablesWithIntrinsicBounds(text, null, null, null); - - - } catch (Exception e){ - Log_OC.d(TAG, e.toString()); - rb.setTextColor(mContext.getResources().getColor(R.color.black)); - } - RadioGroup.LayoutParams params = new RadioGroup.LayoutParams( - LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); - params.weight=1.0f; - params.setMargins(15, 5, 5, 5); - - // Check the current account that is being used - if (account.name.equals(mCurrentAccount.name)) { - rb.setChecked(true); - } else { - rb.setChecked(false); - } - - group.addView(rb, params); - } - - group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ - public void onCheckedChanged(RadioGroup group, int checkedId) { - // checkedId is the RadioButton selected - RadioButton rb = (RadioButton) view.findViewById(checkedId); - - AccountUtils.setCurrentOwnCloudAccount(mContext,rb.getText().toString()); - notifyDataSetChanged(); - mFileActivity.closeDrawer(); - - // restart the main activity - mFileActivity.restart(); - } - }); - - return view; - } +// if (mAll.get(position) instanceof Account[]){ +// final View view = inflator.inflate(R.layout.drawer_account_group, null); +// +// final RadioGroup group = (RadioGroup) view.findViewById(R.id.drawer_radio_group); +// +// for (Account account : mAccounts) { +// RadioButton rb = new RadioButton(mContext); +// +// rb.setText(account.name); +// rb.setContentDescription(account.name); +// rb.setTextColor(Color.BLACK); +// rb.setEllipsize(TextUtils.TruncateAt.MIDDLE); +// rb.setSingleLine(); +// rb.setCompoundDrawablePadding(30); +// +// +// try { +// // using adapted algorithm from /core/js/placeholder.js:50 +// int lastAtPos = account.name.lastIndexOf("@"); +// String username = account.name.substring(0, lastAtPos); +// byte[] seed = username.getBytes("UTF-8"); +// MessageDigest md = MessageDigest.getInstance("MD5"); +//// Integer seedMd5Int = Math.abs(new String(Hex.encodeHex(seedMd5)) +//// .hashCode()); +// Integer seedMd5Int = String.format(Locale.ROOT, "%032x", +// new BigInteger(1, md.digest(seed))).hashCode(); +// +// double maxRange = java.lang.Integer.MAX_VALUE; +// float hue = (float) (seedMd5Int / maxRange * 360); +// +// int[] rgb = BitmapUtils.HSLtoRGB(hue, 90.0f, 65.0f, 1.0f); +// +// TextDrawable text = new TextDrawable(username.substring(0, 1).toUpperCase(), +// rgb[0], rgb[1], rgb[2]); +// rb.setCompoundDrawablesWithIntrinsicBounds(text, null, null, null); +// +// +// } catch (Exception e){ +// Log_OC.d(TAG, e.toString()); +// rb.setTextColor(mContext.getResources().getColor(R.color.black)); +// } +// RadioGroup.LayoutParams params = new RadioGroup.LayoutParams( +// LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); +// params.weight=1.0f; +// params.setMargins(15, 5, 5, 5); +// +// // Check the current account that is being used +// if (account.name.equals(mCurrentAccount.name)) { +// rb.setChecked(true); +// } else { +// rb.setChecked(false); +// } +// +// group.addView(rb, params); +// } +// +// group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ +// public void onCheckedChanged(RadioGroup group, int checkedId) { +// // checkedId is the RadioButton selected +// RadioButton rb = (RadioButton) view.findViewById(checkedId); +// +// AccountUtils.setCurrentOwnCloudAccount(mContext,rb.getText().toString()); +// notifyDataSetChanged(); +// mFileActivity.closeDrawer(); +// +// // restart the main activity +// mFileActivity.restart(); +// } +// }); +// +// return view; +// } } return convertView; } + //TODO re-enable when "Accounts" is available in Navigation Drawer // TODO update Account List after creating a new account and on fresh installation - public void setShowAccounts(boolean value){ - mAll.clear(); - mAll.addAll(mNavigationDrawerItems); - - if (value){ - mAll.add(1, mAccounts); - } - mShowAccounts = value; - } +// public void setShowAccounts(boolean value){ +// mAll.clear(); +// mAll.addAll(mNavigationDrawerItems); +// +// if (value){ +// mAll.add(1, mAccounts); +// } +// mShowAccounts = value; +// } } diff --git a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java index 42a20a0d..21240894 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -404,6 +404,7 @@ public class PreviewImageActivity extends FileActivity implements } else { OCFile currentFile = mPreviewImagePagerAdapter.getFileAt(position); getSupportActionBar().setTitle(currentFile.getFileName()); + mDrawerToggle.setDrawerIndicatorEnabled(false); if (!currentFile.isDown()) { if (!mPreviewImagePagerAdapter.pendingErrorAt(position)) { requestForDownload(currentFile);