diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-04-26 20:32:46 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-04-26 21:08:29 +0300 |
commit | e7757443af6d4c53abd7b3dfb0f253b482dd0eeb (patch) | |
tree | 064ed613d2e85da9be82ccc03d813611f3c0429d /News-Android-App/src | |
parent | 9c3df5ac933cdbaa514786e9f0dd30e647d8db25 (diff) |
#865 Display avatar of the current user account in the top right
Diffstat (limited to 'News-Android-App/src')
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 Binary files differdeleted file mode 100644 index 8791eada..00000000 --- a/News-Android-App/src/main/res/drawable-hdpi/nextcloud.png +++ /dev/null diff --git a/News-Android-App/src/main/res/drawable-ldpi/nextcloud.png b/News-Android-App/src/main/res/drawable-ldpi/nextcloud.png Binary files differdeleted file mode 100644 index 4a86872b..00000000 --- a/News-Android-App/src/main/res/drawable-ldpi/nextcloud.png +++ /dev/null diff --git a/News-Android-App/src/main/res/drawable-mdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-mdpi/nextcloud.png Binary files differdeleted file mode 100644 index ccfc8de1..00000000 --- a/News-Android-App/src/main/res/drawable-mdpi/nextcloud.png +++ /dev/null diff --git a/News-Android-App/src/main/res/drawable-xhdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-xhdpi/nextcloud.png Binary files differdeleted file mode 100644 index 3e67bf1f..00000000 --- a/News-Android-App/src/main/res/drawable-xhdpi/nextcloud.png +++ /dev/null diff --git a/News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.png b/News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.png Binary files differdeleted file mode 100644 index 11728f2d..00000000 --- a/News-Android-App/src/main/res/drawable-xxhdpi/nextcloud.png +++ /dev/null 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" |