Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-04-26 20:32:46 +0300
committerStefan Niedermann <info@niedermann.it>2021-04-26 21:08:29 +0300
commite7757443af6d4c53abd7b3dfb0f253b482dd0eeb (patch)
tree064ed613d2e85da9be82ccc03d813611f3c0429d
parent9c3df5ac933cdbaa514786e9f0dd30e647d8db25 (diff)
#865 Display avatar of the current user account in the top right
-rw-r--r--News-Android-App/src/dev/res/drawable/ic_launcher_foreground.xml22
-rw-r--r--News-Android-App/src/dev/res/drawable/ic_launcher_foreground_full.xml37
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java40
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java39
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java30
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java10
-rw-r--r--News-Android-App/src/main/res/drawable-hdpi/nextcloud.pngbin299286 -> 0 bytes
-rw-r--r--News-Android-App/src/main/res/drawable-ldpi/nextcloud.pngbin51895 -> 0 bytes
-rw-r--r--News-Android-App/src/main/res/drawable-mdpi/nextcloud.pngbin159993 -> 0 bytes
-rw-r--r--News-Android-App/src/main/res/drawable-xhdpi/nextcloud.pngbin432370 -> 0 bytes
-rw-r--r--News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.pngbin713647 -> 0 bytes
-rw-r--r--News-Android-App/src/main/res/drawable/ic_baseline_account_circle_24.xml5
-rw-r--r--News-Android-App/src/main/res/drawable/ic_launcher_foreground_full.xml9
-rw-r--r--News-Android-App/src/main/res/drawable/left_drawer_header_background.xml12
-rw-r--r--News-Android-App/src/main/res/layout/fragment_newsreader_list.xml77
-rw-r--r--News-Android-App/src/main/res/layout/toolbar_layout.xml33
-rw-r--r--News-Android-App/src/main/res/values/dimens.xml2
-rw-r--r--News-Android-App/src/main/res/values/strings.xml1
-rw-r--r--News-Android-App/src/main/res/xml/pref_data_sync.xml7
19 files changed, 161 insertions, 163 deletions
diff --git a/News-Android-App/src/dev/res/drawable/ic_launcher_foreground.xml b/News-Android-App/src/dev/res/drawable/ic_launcher_foreground.xml
index 0e86bb60..9e2db528 100644
--- a/News-Android-App/src/dev/res/drawable/ic_launcher_foreground.xml
+++ b/News-Android-App/src/dev/res/drawable/ic_launcher_foreground.xml
@@ -2,23 +2,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
- android:viewportWidth="872.78925"
- android:viewportHeight="872.78925">
- <group
- android:translateX="21.81973"
- android:translateY="21.81973">
- <group
- android:translateX="20.728745"
- android:translateY="20.728745">
- <group
- android:translateX="137.84616"
- android:translateY="137.84616">
- <path
- android:fillColor="#ffffff"
- android:pathData="M100.929,89C94.32,89 89,94.32 89,100.929v23.857c0,6.608 5.32,11.929 11.929,11.929h310.143c6.608,0 11.929,-5.32 11.929,-11.929L423,100.929C423,94.32 417.68,89 411.071,89L100.929,89zM100.929,184.429C94.32,184.429 89,189.749 89,196.357v23.857c0,6.608 5.32,11.929 11.929,11.929h214.714c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,184.429zM100.929,279.857C94.32,279.857 89,285.177 89,291.786v23.857c0,6.608 5.32,11.929 11.929,11.929h286.286c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,279.857zM100.929,375.286C94.32,375.286 89,380.606 89,387.214v23.857C89,417.68 94.32,423 100.929,423L244.071,423C250.68,423 256,417.68 256,411.071v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,375.286z" />
- </group>
- </group>
- </group>
+ android:viewportWidth="512"
+ android:viewportHeight="512">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M100.929,89C94.32,89 89,94.32 89,100.929v23.857c0,6.608 5.32,11.929 11.929,11.929h310.143c6.608,0 11.929,-5.32 11.929,-11.929L423,100.929C423,94.32 417.68,89 411.071,89L100.929,89zM100.929,184.429C94.32,184.429 89,189.749 89,196.357v23.857c0,6.608 5.32,11.929 11.929,11.929h214.714c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,184.429zM100.929,279.857C94.32,279.857 89,285.177 89,291.786v23.857c0,6.608 5.32,11.929 11.929,11.929h286.286c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,279.857zM100.929,375.286C94.32,375.286 89,380.606 89,387.214v23.857C89,417.68 94.32,423 100.929,423L244.071,423C250.68,423 256,417.68 256,411.071v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,375.286z" />
<group
android:scaleX="2.6"
android:scaleY="3"
diff --git a/News-Android-App/src/dev/res/drawable/ic_launcher_foreground_full.xml b/News-Android-App/src/dev/res/drawable/ic_launcher_foreground_full.xml
new file mode 100644
index 00000000..0e86bb60
--- /dev/null
+++ b/News-Android-App/src/dev/res/drawable/ic_launcher_foreground_full.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="872.78925"
+ android:viewportHeight="872.78925">
+ <group
+ android:translateX="21.81973"
+ android:translateY="21.81973">
+ <group
+ android:translateX="20.728745"
+ android:translateY="20.728745">
+ <group
+ android:translateX="137.84616"
+ android:translateY="137.84616">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M100.929,89C94.32,89 89,94.32 89,100.929v23.857c0,6.608 5.32,11.929 11.929,11.929h310.143c6.608,0 11.929,-5.32 11.929,-11.929L423,100.929C423,94.32 417.68,89 411.071,89L100.929,89zM100.929,184.429C94.32,184.429 89,189.749 89,196.357v23.857c0,6.608 5.32,11.929 11.929,11.929h214.714c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,184.429zM100.929,279.857C94.32,279.857 89,285.177 89,291.786v23.857c0,6.608 5.32,11.929 11.929,11.929h286.286c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,279.857zM100.929,375.286C94.32,375.286 89,380.606 89,387.214v23.857C89,417.68 94.32,423 100.929,423L244.071,423C250.68,423 256,417.68 256,411.071v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,375.286z" />
+ </group>
+ </group>
+ </group>
+ <group
+ android:scaleX="2.6"
+ android:scaleY="3"
+ android:translateX="440"
+ android:translateY="520">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M11.908125 40h11.4c4.44 0 7.24 -1.04 9.2 -3.4 2.32 -2.72 3.56 -6.68 3.56 -11.2 0 -4.48 -1.24 -8.44 -3.56 -11.2 -1.96 -2.36 -4.72 -3.36 -9.2 -3.36h-11.4zm6 -5V15.84h5.4c4.52 0 6.76 3.16 6.76 9.6 0 6.4 -2.24 9.56 -6.76 9.56z" />
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M46.894375 27.44h13.96v-5h-13.96v-6.6h15.08v-5h-21.08V40h21.8v-5h-15.8z" />
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M80.333125 40l10 -29.16h-6.04l-6.36 21.96 -6.48 -21.96h-6.04l9.84 29.16z" />
+ </group>
+</vector>
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
index 573eb86b..2744399b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
@@ -72,6 +72,9 @@ import com.nextcloud.android.sso.exceptions.SSOException;
import com.nextcloud.android.sso.exceptions.TokenMismatchException;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
import com.nextcloud.android.sso.ui.UiExceptionManager;
+import com.nostra13.universalimageloader.core.DisplayImageOptions;
+import com.nostra13.universalimageloader.core.ImageLoader;
+import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -100,6 +103,7 @@ import de.luhmer.owncloudnewsreader.events.podcast.FeedPanelSlideEvent;
import de.luhmer.owncloudnewsreader.helper.DatabaseUtils;
import de.luhmer.owncloudnewsreader.helper.ThemeChooser;
import de.luhmer.owncloudnewsreader.helper.ThemeUtils;
+import de.luhmer.owncloudnewsreader.model.OcsUser;
import de.luhmer.owncloudnewsreader.reader.nextcloud.RssItemObservable;
import de.luhmer.owncloudnewsreader.services.DownloadImagesService;
import de.luhmer.owncloudnewsreader.services.DownloadWebPageService;
@@ -120,6 +124,7 @@ import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static androidx.annotation.VisibleForTesting.PROTECTED;
import static de.luhmer.owncloudnewsreader.LoginDialogActivity.RESULT_LOGIN;
import static de.luhmer.owncloudnewsreader.LoginDialogActivity.ShowAlertDialog;
+import static de.luhmer.owncloudnewsreader.SettingsActivity.PREF_SERVER_SETTINGS;
/**
* An activity representing a list of NewsReader. This activity has different
@@ -226,6 +231,11 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
initAccountManager();
+ binding.toolbarLayout.avatar.setVisibility(View.VISIBLE);
+ binding.toolbarLayout.avatar.setOnClickListener((v) -> {
+ startActivityForResult(new Intent(this, LoginDialogActivity.class), RESULT_LOGIN);
+ });
+
// Init config --> if nothing is configured start the login dialog.
if (!isUserLoggedIn()) {
startLoginActivity();
@@ -571,6 +581,28 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
}
@Override
+ public void onUserInfoUpdated(OcsUser userInfo) {
+ final int placeHolder = R.mipmap.ic_launcher;
+ DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
+ .displayer(new CircleBitmapDisplayer())
+ .showImageOnLoading(placeHolder)
+ .showImageForEmptyUri(placeHolder)
+ .showImageOnFail(placeHolder)
+ .cacheOnDisk(true)
+ .cacheInMemory(true)
+ .build();
+
+ if(userInfo.getId() != null) {
+ String mOc_root_path = mPrefs.getString(SettingsActivity.EDT_OWNCLOUDROOTPATH_STRING, null);
+ String avatarUrl = mOc_root_path + "/index.php/avatar/" + Uri.encode(userInfo.getId()) + "/64";
+ ImageLoader.getInstance().displayImage(avatarUrl, binding.toolbarLayout.avatar, displayImageOptions);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ binding.toolbarLayout.avatar.setTooltipText(userInfo.getDisplayName());
+ }
+ }
+ }
+
+ @Override
public void onChildItemLongClicked(long idFeed) {
startDialogFragment(idFeed, false);
}
@@ -920,9 +952,14 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
getSlidingListFragment().ListViewNotifyDataSetChanged();
}
+ if (requestCode == RESULT_LOGIN) {
+ Intent intent = getIntent().putExtra(PREF_SERVER_SETTINGS, true);
+ setResult(RESULT_OK, intent);
+ }
+
if(requestCode == RESULT_SETTINGS) {
// Extra is set if user entered/modified server settings
- if (data == null || data.getBooleanExtra(SettingsActivity.PREF_SERVER_SETTINGS,false)) {
+ if (data == null || data.getBooleanExtra(PREF_SERVER_SETTINGS,false)) {
resetUiAndStartSync();
} else {
//Update settings of image Loader
@@ -1025,7 +1062,6 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
}
private void resetUiAndStartSync() {
- getSlidingListFragment().loadOwncloudOrNextcloudBanner();
getSlidingListFragment().reloadAdapter();
updateCurrentRssView();
startSync();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java
index c9fccd9e..0d6112de 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java
@@ -24,7 +24,6 @@ package de.luhmer.owncloudnewsreader;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.net.Uri;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
@@ -35,16 +34,11 @@ import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
-import android.widget.ImageView;
-import android.widget.TextView;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import com.google.android.material.navigation.NavigationView;
-import com.nostra13.universalimageloader.core.DisplayImageOptions;
-import com.nostra13.universalimageloader.core.ImageLoader;
-import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -134,6 +128,7 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
void onTopItemClicked(long idFeed, boolean isFolder, Long onTopItemClicked);
void onChildItemLongClicked(long idFeed);
void onTopItemLongClicked(long idFeed, boolean isFolder);
+ void onUserInfoUpdated(OcsUser userInfo);
}
/**
@@ -154,8 +149,6 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
Bundle savedInstanceState) {
binding = FragmentNewsreaderListBinding.inflate(requireActivity().getLayoutInflater(), container, false);
- loadOwncloudOrNextcloudBanner();
-
lvAdapter = new SubscriptionExpandableListAdapter(getActivity(), new DatabaseConnectionOrm(getActivity()), binding.expandableListView, mPrefs);
lvAdapter.setHandlerListener(expListTextClickedListener);
@@ -203,13 +196,6 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
mCallbacks = null;
}
- protected void loadOwncloudOrNextcloudBanner() {
- if(!Constants.isNextCloud(mPrefs)) {
- // Set ownCloud view
- binding.headerView.setBackgroundResource(R.drawable.left_drawer_header_background);
- }
- }
-
/**
* Cares about settings items in news list drawer.
* - Binds settings, shown at bottom of drawer
@@ -368,12 +354,6 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
// return if app is not setup yet..
return;
}
- String mUsername = mPrefs.getString(SettingsActivity.EDT_USERNAME_STRING, null);
- String mOc_root_path = mPrefs.getString(SettingsActivity.EDT_OWNCLOUDROOTPATH_STRING, null);
- String mOc_root_path_without_protocol = mOc_root_path.replace("http://", "").replace("https://", ""); //Remove http:// or https://
-
- binding.userTextView.setText(mUsername);
- binding.urlTextView.setText(mOc_root_path_without_protocol);
String uInfo = mPrefs.getString(USER_INFO_STRING, null);
if(uInfo == null) {
@@ -382,22 +362,7 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
try {
OcsUser userInfo = (OcsUser) fromString(uInfo);
- if (userInfo.getDisplayName() != null)
- binding.userTextView.setText(userInfo.getDisplayName());
- final int placeHolder = R.mipmap.ic_launcher;
- DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
- .displayer(new CircleBitmapDisplayer())
- .showImageOnLoading(placeHolder)
- .showImageForEmptyUri(placeHolder)
- .showImageOnFail(placeHolder)
- .cacheOnDisk(true)
- .cacheInMemory(true)
- .build();
-
- if(userInfo.getId() != null) {
- String avatarUrl = mOc_root_path + "/index.php/avatar/" + Uri.encode(userInfo.getId()) + "/64";
- ImageLoader.getInstance().displayImage(avatarUrl, binding.headerLogo, displayImageOptions);
- }
+ mCallbacks.onUserInfoUpdated(userInfo);
} catch (Exception ex) {
ex.printStackTrace();
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java
index 7b4bce4f..e46dee5b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java
@@ -156,34 +156,4 @@ public class SettingsActivity extends AppCompatActivity {
);
setResult(RESULT_OK,intent);
}
-
- /**
- * Used to notify Activity, that server settings were touched by user.
- *
- * If server settings were touched, a result is provided by intent with corresponding request code.
- * No notify the calling activity that server settings were touched, a new extra is put to
- * response intent: PREF_SERVER_SETTINGS is set to true.
- *
- * Result has to be handled by receiving activity.
- *
- * @param requestCode
- * @param resultCode
- * @param data
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- if (requestCode == RESULT_LOGIN) {
- Intent intent = getIntent().putExtra(PREF_SERVER_SETTINGS, true);
- setResult(RESULT_OK, intent);
- }
- }
-
- //@Override
- public boolean onIsMultiPane() {
- return this.getResources().getBoolean(R.bool.isTablet);
- }
-
-
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java
index 9707c4aa..e7b7dc23 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java
@@ -287,18 +287,10 @@ public class SettingsFragment extends PreferenceFragmentCompat {
checkForUnsycedChangesInDatabaseAndResetDatabase(prefFrag.getActivity());
return true;
});
-
- Preference serverSettings = prefFrag.findPreference(PREF_SERVER_SETTINGS);
- serverSettings.setOnPreferenceClickListener(preference -> {
- Intent loginIntent = new Intent(getActivity(), LoginDialogActivity.class);
- getActivity().startActivityForResult(loginIntent, RESULT_LOGIN);
- return true;
- });
}
- private void bindNotificationPreferences(PreferenceFragmentCompat prefFrag)
- {
+ private void bindNotificationPreferences(PreferenceFragmentCompat prefFrag) {
bindPreferenceBooleanToValue(prefFrag.findPreference(CB_SHOW_NOTIFICATION_NEW_ARTICLES_STRING));
}
diff --git a/News-Android-App/src/main/res/drawable-hdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-hdpi/nextcloud.png
deleted file mode 100644
index 8791eada..00000000
--- a/News-Android-App/src/main/res/drawable-hdpi/nextcloud.png
+++ /dev/null
Binary files differ
diff --git a/News-Android-App/src/main/res/drawable-ldpi/nextcloud.png b/News-Android-App/src/main/res/drawable-ldpi/nextcloud.png
deleted file mode 100644
index 4a86872b..00000000
--- a/News-Android-App/src/main/res/drawable-ldpi/nextcloud.png
+++ /dev/null
Binary files differ
diff --git a/News-Android-App/src/main/res/drawable-mdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-mdpi/nextcloud.png
deleted file mode 100644
index ccfc8de1..00000000
--- a/News-Android-App/src/main/res/drawable-mdpi/nextcloud.png
+++ /dev/null
Binary files differ
diff --git a/News-Android-App/src/main/res/drawable-xhdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-xhdpi/nextcloud.png
deleted file mode 100644
index 3e67bf1f..00000000
--- a/News-Android-App/src/main/res/drawable-xhdpi/nextcloud.png
+++ /dev/null
Binary files differ
diff --git a/News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.png
deleted file mode 100644
index 11728f2d..00000000
--- a/News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.png
+++ /dev/null
Binary files differ
diff --git a/News-Android-App/src/main/res/drawable/ic_baseline_account_circle_24.xml b/News-Android-App/src/main/res/drawable/ic_baseline_account_circle_24.xml
new file mode 100644
index 00000000..839101bd
--- /dev/null
+++ b/News-Android-App/src/main/res/drawable/ic_baseline_account_circle_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#FFFFFF"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,5c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zM12,19.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z"/>
+</vector>
diff --git a/News-Android-App/src/main/res/drawable/ic_launcher_foreground_full.xml b/News-Android-App/src/main/res/drawable/ic_launcher_foreground_full.xml
new file mode 100644
index 00000000..12266854
--- /dev/null
+++ b/News-Android-App/src/main/res/drawable/ic_launcher_foreground_full.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="512"
+ android:viewportHeight="512">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M100.929,89C94.32,89 89,94.32 89,100.929v23.857c0,6.608 5.32,11.929 11.929,11.929h310.143c6.608,0 11.929,-5.32 11.929,-11.929L423,100.929C423,94.32 417.68,89 411.071,89L100.929,89zM100.929,184.429C94.32,184.429 89,189.749 89,196.357v23.857c0,6.608 5.32,11.929 11.929,11.929h214.714c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,184.429zM100.929,279.857C94.32,279.857 89,285.177 89,291.786v23.857c0,6.608 5.32,11.929 11.929,11.929h286.286c6.608,0 11.929,-5.32 11.929,-11.929v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,279.857zM100.929,375.286C94.32,375.286 89,380.606 89,387.214v23.857C89,417.68 94.32,423 100.929,423L244.071,423C250.68,423 256,417.68 256,411.071v-23.857c0,-6.608 -5.32,-11.929 -11.929,-11.929L100.929,375.286z" />
+</vector>
diff --git a/News-Android-App/src/main/res/drawable/left_drawer_header_background.xml b/News-Android-App/src/main/res/drawable/left_drawer_header_background.xml
deleted file mode 100644
index 2ae8d8b4..00000000
--- a/News-Android-App/src/main/res/drawable/left_drawer_header_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="translucent">
- <item>
- <shape>
- <gradient
- android:startColor="@color/owncloudBlue"
- android:endColor="@color/owncloudBlue"
- android:angle="-90"/>
- </shape>
- </item>
- <item><bitmap android:src="@drawable/owncloud" android:gravity="center" /></item>
-</layer-list> \ No newline at end of file
diff --git a/News-Android-App/src/main/res/layout/fragment_newsreader_list.xml b/News-Android-App/src/main/res/layout/fragment_newsreader_list.xml
index d7af31b7..2f030f53 100644
--- a/News-Android-App/src/main/res/layout/fragment_newsreader_list.xml
+++ b/News-Android-App/src/main/res/layout/fragment_newsreader_list.xml
@@ -2,84 +2,77 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- xmlns:tools="http://schemas.android.com/tools"
android:background="@color/app_drawer_feed_list_background_color">
<!-- TODO: make header scroll up with listview -->
- <RelativeLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/header_view"
android:layout_width="match_parent"
android:layout_height="100dp"
- android:padding="10dp"
- android:background="@drawable/nextcloud"
+ android:background="@color/nextcloudBlue"
android:clickable="true"
- android:focusable="true">
+ android:focusable="true"
+ android:padding="10dp">
<TextView
+ android:id="@+id/appName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium"
- tools:text='Username'
- android:id="@+id/userTextView"
- android:textColor="@android:color/white"
- android:layout_above="@+id/urlTextView"
+ android:layout_marginStart="@dimen/spacer_2x"
android:layout_toEndOf="@+id/header_logo"
android:ellipsize="end"
- android:singleLine="true" />
-
- <TextView
- android:id="@+id/urlTextView"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- tools:text='https://url_to_owncloud.oc'
- android:textColor="@android:color/white"
- android:layout_alignParentBottom="true"
- android:paddingBottom="5dp"
- android:layout_toEndOf="@+id/header_logo"
+ android:fontFamily="sans-serif-light"
+ android:gravity="center_vertical"
android:singleLine="true"
- android:ellipsize="end" />
+ android:text="@string/app_name"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@android:color/white"
+ android:textSize="24sp"
+ app:layout_constraintBottom_toBottomOf="@id/header_logo"
+ app:layout_constraintStart_toEndOf="@id/header_logo"
+ app:layout_constraintTop_toTopOf="@id/header_logo" />
<ImageView
- android:layout_width="48dp"
- android:layout_height="48dp"
android:id="@+id/header_logo"
- android:background="@drawable/shadow"
- android:layout_alignBottom="@+id/urlTextView"
- android:layout_alignParentStart="true"
- android:src="@mipmap/ic_launcher"
- android:layout_marginEnd="10dp"
- android:contentDescription="@string/content_desc_tap_to_refresh"/>
+ android:layout_width="56dp"
+ android:layout_height="56dp"
+ android:layout_marginStart="@dimen/spacer_1x"
+ android:contentDescription="@string/content_desc_tap_to_refresh"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/ic_launcher_foreground" />
<ProgressBar
android:id="@+id/header_logo_progress"
style="?android:attr/progressBarStyle"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:layout_alignParentBottom="true"
- android:layout_alignParentStart="true"
- android:indeterminateTint="@android:color/white"
- android:indeterminateTintMode="src_in"
+ android:layout_width="56dp"
+ android:layout_height="56dp"
android:layout_gravity="center"
android:indeterminate="true"
- android:padding="7dp" />
+ android:indeterminateTint="@android:color/white"
+ android:indeterminateTintMode="src_in"
+ app:layout_constraintBottom_toBottomOf="@id/header_logo"
+ app:layout_constraintEnd_toEndOf="@id/header_logo"
+ app:layout_constraintStart_toStartOf="@id/header_logo"
+ app:layout_constraintTop_toTopOf="@id/header_logo" />
- </RelativeLayout>
+ </androidx.constraintlayout.widget.ConstraintLayout>
<de.luhmer.owncloudnewsreader.ListView.BlockingExpandableListView
android:id="@+id/expandableListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:divider="@null"
- android:layout_below="@+id/header_view"
android:layout_above="@id/navigationMenu"
- />
+ android:layout_below="@+id/header_view"
+ android:divider="@null" />
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigationMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/navigationview_bg"
android:layout_alignParentBottom="true"
+ android:background="@drawable/navigationview_bg"
app:menu="@menu/drawer_menu" />
diff --git a/News-Android-App/src/main/res/layout/toolbar_layout.xml b/News-Android-App/src/main/res/layout/toolbar_layout.xml
index 7cb7cbb2..ddf233cb 100644
--- a/News-Android-App/src/main/res/layout/toolbar_layout.xml
+++ b/News-Android-App/src/main/res/layout/toolbar_layout.xml
@@ -1,14 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- xmlns:app="http://schemas.android.com/apk/res-auto">
+ android:layout_height="wrap_content">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:theme="@style/ToolbarTheme"
- app:popupTheme="@style/ToolbarOptionMenuBackgroundTheme"/>
+ android:layout_height="wrap_content">
+ <androidx.appcompat.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_width="0dp"
+ android:layout_height="?attr/actionBarSize"
+ android:layout_weight="1"
+ android:theme="@style/ToolbarTheme"
+ app:popupTheme="@style/ToolbarOptionMenuBackgroundTheme" />
+
+ <ImageButton
+ android:id="@+id/avatar"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
+ android:layout_gravity="center"
+ android:layout_marginEnd="@dimen/spacer_1x"
+ android:background="?attr/selectableItemBackground"
+ android:contentDescription="@string/switch_account"
+ android:padding="@dimen/spacer_1x"
+ android:visibility="gone"
+ app:srcCompat="@drawable/ic_baseline_account_circle_24"
+ tools:visibility="visible" />
+ </LinearLayout>
</com.google.android.material.appbar.AppBarLayout> \ No newline at end of file
diff --git a/News-Android-App/src/main/res/values/dimens.xml b/News-Android-App/src/main/res/values/dimens.xml
index adbeafd2..32dec47f 100644
--- a/News-Android-App/src/main/res/values/dimens.xml
+++ b/News-Android-App/src/main/res/values/dimens.xml
@@ -19,6 +19,8 @@
<dimen name="podcast_media_control_height">80dp</dimen>
+ <dimen name="spacer_1hx">4dp</dimen>
<dimen name="spacer_1x">8dp</dimen>
+ <dimen name="spacer_2x">16dp</dimen>
<dimen name="widget_outer_radius">@dimen/spacer_1x</dimen>
</resources> \ No newline at end of file
diff --git a/News-Android-App/src/main/res/values/strings.xml b/News-Android-App/src/main/res/values/strings.xml
index 29915711..8e92374d 100644
--- a/News-Android-App/src/main/res/values/strings.xml
+++ b/News-Android-App/src/main/res/values/strings.xml
@@ -423,6 +423,7 @@
<string name="array_sync_interval_hour_6">6 Hours</string>
<string name="array_sync_interval_hour_12">12 Hours</string>
<string name="array_sync_interval_hour_24">24 Hours</string>
+ <string name="switch_account">Switch account</string>
<string-array name="array_sync_interval" translatable="false">
<item>@string/array_sync_interval_min_0</item>
diff --git a/News-Android-App/src/main/res/xml/pref_data_sync.xml b/News-Android-App/src/main/res/xml/pref_data_sync.xml
index 867ae367..bf2da08d 100644
--- a/News-Android-App/src/main/res/xml/pref_data_sync.xml
+++ b/News-Android-App/src/main/res/xml/pref_data_sync.xml
@@ -24,13 +24,6 @@
This preference simply launches an intent when selected. Use this UI sparingly, per
design guidelines.
-->
- <Preference
- android:key="pref_server_settings"
- android:title="@string/action_login"
- app:iconSpaceReserved="false">
- </Preference>
-
-
<Preference
android:key="pref_sync_settings"