From a2508e4df54b1990d365d3df5c8ca7ff33ed6d74 Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Fri, 7 Oct 2016 04:29:32 +0200 Subject: [PATCH] Go to login page instead of podpage --- .../activity/MainActivity.java | 66 ++++++++++--------- .../fragment/PodSelectionFragment.java | 6 +- .../util/DiasporaUrlHelper.java | 11 +++- .../DiasporaStreamWebChromeClient.java | 2 +- 4 files changed, 49 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index 07febd63..c0dcadbe 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -60,7 +60,6 @@ import android.widget.Toast; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.data.DiasporaPodList; import com.github.dfa.diaspora_android.data.PodUserProfile; import com.github.dfa.diaspora_android.fragment.BrowserFragment; import com.github.dfa.diaspora_android.fragment.CustomFragment; @@ -179,7 +178,7 @@ public class MainActivity extends AppCompatActivity } }); - if(!appSettings.hasPod()) { + if (!appSettings.hasPod()) { AppLog.d(this, "We have no pod. Show PodSelectionFragment"); showFragment(getFragment(PodSelectionFragment.TAG)); } else { @@ -233,6 +232,7 @@ public class MainActivity extends AppCompatActivity /** * Show DiasporaStreamFragment if necessary and load URL url + * * @param url URL to load in the DiasporaStreamFragment */ public void openDiasporaUrl(String url) { @@ -246,12 +246,13 @@ public class MainActivity extends AppCompatActivity * Get an instance of the CustomFragment with the tag fragmentTag. * If there was no instance so far, create a new one and add it to the FragmentManagers pool. * If there is no Fragment with the corresponding Tag, return null. + * * @param fragmentTag tag * @return corresponding Fragment */ protected CustomFragment getFragment(String fragmentTag) { CustomFragment fragment = (CustomFragment) fm.findFragmentByTag(fragmentTag); - if(fragment != null) { + if (fragment != null) { return fragment; } else { switch (fragmentTag) { @@ -272,8 +273,8 @@ public class MainActivity extends AppCompatActivity fm.beginTransaction().add(psf, fragmentTag).commit(); return psf; default: - AppLog.e(this,"Invalid Fragment Tag: "+fragmentTag - +"\nAdd Fragments Tag to getFragment()'s switch case."); + AppLog.e(this, "Invalid Fragment Tag: " + fragmentTag + + "\nAdd Fragments Tag to getFragment()'s switch case."); return getTopFragment(); } } @@ -281,12 +282,13 @@ public class MainActivity extends AppCompatActivity /** * Show the Fragment fragment in R.id.fragment_container. If the fragment was already visible, do nothing. + * * @param fragment Fragment to show */ protected void showFragment(CustomFragment fragment) { AppLog.v(this, "showFragment()"); CustomFragment currentTop = (CustomFragment) fm.findFragmentById(R.id.fragment_container); - if(currentTop == null || !currentTop.getFragmentTag().equals(fragment.getFragmentTag())) { + if (currentTop == null || !currentTop.getFragmentTag().equals(fragment.getFragmentTag())) { AppLog.v(this, "Fragment was not visible. Replace it."); fm.beginTransaction().addToBackStack(null).replace(R.id.fragment_container, fragment, fragment.getFragmentTag()).commit(); invalidateOptionsMenu(); @@ -344,21 +346,6 @@ public class MainActivity extends AppCompatActivity } } } - - // Set visibility - Menu navMenu = navView.getMenu(); - navMenu.findItem(R.id.nav_exit).setVisible(appSettings.isVisibleInNavExit()); - navMenu.findItem(R.id.nav_activities).setVisible(appSettings.isVisibleInNavActivities()); - navMenu.findItem(R.id.nav_aspects).setVisible(appSettings.isVisibleInNavAspects()); - navMenu.findItem(R.id.nav_commented).setVisible(appSettings.isVisibleInNavCommented()); - navMenu.findItem(R.id.nav_followed_tags).setVisible(appSettings.isVisibleInNavFollowed_tags()); - navMenu.findItem(R.id.nav_about).setVisible(appSettings.isVisibleInNavHelp_license()); - navMenu.findItem(R.id.nav_liked).setVisible(appSettings.isVisibleInNavLiked()); - navMenu.findItem(R.id.nav_mentions).setVisible(appSettings.isVisibleInNavMentions()); - navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile()); - navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities()); - // Hide all pod related options if no pod is selected - navMenu.setGroupVisible(navMenu.findItem(R.id.nav_exit).getGroupId(), appSettings.getPod() != null); } @OnClick(R.id.main__topbar) @@ -396,7 +383,7 @@ public class MainActivity extends AppCompatActivity return; } else { loadUrl = intent.getDataString(); - AppLog.v(this, "Intent has a delicious URL for us: "+loadUrl); + AppLog.v(this, "Intent has a delicious URL for us: " + loadUrl); } } else if (ACTION_CHANGE_ACCOUNT.equals(action)) { AppLog.v(this, "Reset pod data and show PodSelectionFragment"); @@ -435,7 +422,7 @@ public class MainActivity extends AppCompatActivity @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - AppLog.v(this, "onActivityResult(): "+requestCode); + AppLog.v(this, "onActivityResult(): " + requestCode); super.onActivityResult(requestCode, resultCode, data); } @@ -453,7 +440,7 @@ public class MainActivity extends AppCompatActivity private CustomFragment getTopFragment() { Fragment top = fm.findFragmentById(R.id.fragment_container); - if(top != null) { + if (top != null) { return (CustomFragment) top; } return null; @@ -467,12 +454,12 @@ public class MainActivity extends AppCompatActivity return; } CustomFragment top = getTopFragment(); - if(top != null) { + if (top != null) { AppLog.v(this, "Top Fragment is not null"); - if(!top.onBackPressed()) { + if (!top.onBackPressed()) { AppLog.v(this, "Top Fragment.onBackPressed was false"); - AppLog.v(this, "BackStackEntryCount: "+fm.getBackStackEntryCount()); - if(fm.getBackStackEntryCount()>0) { + AppLog.v(this, "BackStackEntryCount: " + fm.getBackStackEntryCount()); + if (fm.getBackStackEntryCount() > 0) { fm.popBackStack(); } else { snackbarExitApp.show(); @@ -528,9 +515,9 @@ public class MainActivity extends AppCompatActivity toolbarBottom.setVisibility(View.VISIBLE); CustomFragment top = getTopFragment(); - if(top != null) { + if (top != null) { //Are we displaying a Fragment other than PodSelectionFragment? - if(!top.getFragmentTag().equals(PodSelectionFragment.TAG)) { + if (!top.getFragmentTag().equals(PodSelectionFragment.TAG)) { getMenuInflater().inflate(R.menu.main__menu_top, menu); getMenuInflater().inflate(R.menu.main__menu_bottom, toolbarBottom.getMenu()); top.onCreateBottomOptionsMenu(toolbarBottom.getMenu(), getMenuInflater()); @@ -548,6 +535,21 @@ public class MainActivity extends AppCompatActivity public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item; + Menu navMenu = navView.getMenu(); + navMenu.findItem(R.id.nav_exit).setVisible(appSettings.isVisibleInNavExit()); + navMenu.findItem(R.id.nav_activities).setVisible(appSettings.isVisibleInNavActivities()); + navMenu.findItem(R.id.nav_aspects).setVisible(appSettings.isVisibleInNavAspects()); + navMenu.findItem(R.id.nav_commented).setVisible(appSettings.isVisibleInNavCommented()); + navMenu.findItem(R.id.nav_followed_tags).setVisible(appSettings.isVisibleInNavFollowed_tags()); + navMenu.findItem(R.id.nav_about).setVisible(appSettings.isVisibleInNavHelp_license()); + navMenu.findItem(R.id.nav_liked).setVisible(appSettings.isVisibleInNavLiked()); + navMenu.findItem(R.id.nav_mentions).setVisible(appSettings.isVisibleInNavMentions()); + navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile()); + navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities()); + if (appSettings.getPod() == null) { + navMenu.setGroupVisible(navView.getMenu().findItem(R.id.nav_exit).getGroupId(), false); + } + if ((item = menu.findItem(R.id.action_notifications)) != null) { LayerDrawable icon = (LayerDrawable) item.getIcon(); BadgeDrawable.setBadgeCount(this, icon, podUserProfile.getNotificationCount()); @@ -757,8 +759,8 @@ public class MainActivity extends AppCompatActivity @Override public void onCustomTabsConnected() { - if(customTabsSession == null) { - AppLog.i(this, "CustomTabs warmup: "+customTabActivityHelper.warmup(0)); + if (customTabsSession == null) { + AppLog.i(this, "CustomTabs warmup: " + customTabActivityHelper.warmup(0)); customTabsSession = customTabActivityHelper.getSession(); } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/PodSelectionFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/fragment/PodSelectionFragment.java index 3f49544f..eb751ae5 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/PodSelectionFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/fragment/PodSelectionFragment.java @@ -215,7 +215,6 @@ public class PodSelectionFragment extends CustomFragment implements SearchView.O public void onPodSelectionDialogResult(DiasporaPod pod, boolean accepted) { System.out.println(accepted + ": " + pod.toString()); if (accepted) { - //TODO: Rework for new pod url system ;) app.getSettings().setPod(pod); try { @@ -232,7 +231,10 @@ public class PodSelectionFragment extends CustomFragment implements SearchView.O e.printStackTrace(); } - ((MainActivity) getActivity()).openDiasporaUrl(new DiasporaUrlHelper(appSettings).getPodUrl()); + MainActivity mainActivity = (MainActivity) getActivity(); + DiasporaUrlHelper urlHelper = new DiasporaUrlHelper(appSettings); + mainActivity.openDiasporaUrl(urlHelper.getSignInUrl()); + mainActivity.invalidateOptionsMenu(); } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java index 56f4c638..c4901dc7 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java @@ -52,6 +52,7 @@ public class DiasporaUrlHelper { public static final String SUBURL_STATISTICS = "/statistics"; public static final String SUBURL_PERSONAL_SETTINGS = "/user/edit"; public static final String SUBURL_MANAGE_TAGS = "/tag_followings/manage"; + public static final String SUBURL_SIGN_IN = "/users/sign_in"; public static final String SUBURL_MANAGE_CONTACTS = "/contacts"; public static final String URL_BLANK = "about:blank"; @@ -68,7 +69,7 @@ public class DiasporaUrlHelper { public String getPodUrl() { DiasporaPod pod = settings.getPod(); if (pod != null){ - return settings.getPod().getPodUrl().getBaseUrl(); + return pod.getPodUrl().getBaseUrl(); } return "http://127.0.0.1"; @@ -220,6 +221,14 @@ public class DiasporaUrlHelper { return getPodUrl() + SUBURL_STATISTICS; } + /** + * Return a url that points to the sign in page of the pod. + * @return https://(pod-domain.tld)/users/sign_in + */ + public String getSignInUrl() { + return getPodUrl() + SUBURL_SIGN_IN; + } + /** * Return a url that points to the personal settings page of the pod. * @return https://(pod-domain.tld)/user/edit diff --git a/app/src/main/java/com/github/dfa/diaspora_android/webview/DiasporaStreamWebChromeClient.java b/app/src/main/java/com/github/dfa/diaspora_android/webview/DiasporaStreamWebChromeClient.java index 22da0d8a..3a7cd35e 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/webview/DiasporaStreamWebChromeClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/webview/DiasporaStreamWebChromeClient.java @@ -21,7 +21,7 @@ public class DiasporaStreamWebChromeClient extends FileUploadWebChromeClient { @Override public void onProgressChanged(WebView wv, int progress) { super.onProgressChanged(wv, progress); - if (progress > 0 && progress <= 60) { + if (progress > 10 && progress <= 60) { WebHelper.getUserProfile(wv); WebHelper.optimizeMobileSiteLayout(wv); }