From b7ca97208a81f3e58b27aaa000d2223ee45aaddc Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Wed, 26 Oct 2016 16:23:14 +0200 Subject: [PATCH] BIG REFACTORING - 0.1.6-next edition --- app/src/main/AndroidManifest.xml | 4 +- app/src/main/ic_launcher-web.png | Bin 0 -> 16446 bytes .../com/github/dfa/diaspora_android/App.java | 14 +- .../activity/AboutActivity.java | 20 +-- .../AspectListFragment.java | 16 +- .../DiasporaStreamFragment.java | 18 +-- .../activity/MainActivity.java | 92 +++++------ .../PodSelectionFragment.java | 20 ++- .../activity/SettingsActivity.java | 55 +++---- .../TagListFragment.java} | 14 +- .../{PodAspect.java => DiasporaAspect.java} | 11 +- ...rProfile.java => DiasporaUserProfile.java} | 47 +++--- .../DiasporaUserProfileChangedListener.java | 55 +++++++ .../IntellihideToolbarActivityListener.java | 2 +- .../WebUserProfileChangedListener.java | 33 ---- .../receiver/OpenExternalLinkReceiver.java | 8 +- .../receiver/UpdateTitleReceiver.java | 2 +- .../{util => service}/AvatarImageLoader.java | 4 +- .../FetchPodsService.java} | 6 +- .../HashtagContentProvider.java} | 4 +- .../{task => service}/ImageDownloadTask.java | 2 +- .../{task => service}/ProfileFetchTask.java | 6 +- .../StatisticsFetchTask.java | 2 +- .../diaspora_android/ui/BadgeDrawable.java | 2 +- .../dfa/diaspora_android/ui/HtmlTextView.java | 2 +- .../ui/PodSelectionDialog.java | 15 +- .../theming => ui/theme}/ColorPalette.java | 2 +- .../theme}/CustomFragment.java | 4 +- .../theming => ui/theme}/ThemeHelper.java | 14 +- .../ui/{ => theme}/Themeable.java | 2 +- .../theme}/ThemedActivity.java | 5 +- .../theme}/ThemedAppCompatDialogFragment.java | 5 +- .../{ => theme}/ThemedCheckBoxPreference.java | 9 +- .../ThemedColorPickerPreference.java | 4 +- .../theme}/ThemedFragment.java | 5 +- .../{ => theme}/ThemedPreferenceCategory.java | 10 +- .../theme}/ThemedPreferenceFragment.java | 8 +- .../ThemedVisibilityPreference.java | 5 +- .../dfa/diaspora_android/util/AppLog.java | 128 +++++++++++++++ .../{data => util}/AppSettings.java | 17 +- .../util/DiasporaUrlHelper.java | 7 +- .../dfa/diaspora_android/util/Helpers.java | 1 + .../github/dfa/diaspora_android/util/Log.java | 149 ------------------ .../{fragment => web}/BrowserFragment.java | 11 +- .../{ui => web}/ContextMenuWebView.java | 4 +- .../{webview => web}/CustomWebViewClient.java | 2 +- .../DiasporaStreamWebChromeClient.java | 3 +- .../FileUploadWebChromeClient.java | 2 +- .../{ui => web}/NestedWebView.java | 2 +- .../ProgressBarWebChromeClient.java | 2 +- .../{util => web}/ProxyHandler.java | 5 +- .../{util => web}/WebHelper.java | 2 +- .../custom_tab}/BrowserFallback.java | 2 +- .../custom_tab}/CustomTabActivityHelper.java | 2 +- .../custom_tab}/CustomTabsHelper.java | 2 +- .../main/res/drawable-hdpi/ic_launcher.png | Bin 3372 -> 1420 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 2204 -> 929 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 4611 -> 2017 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 7179 -> 3275 bytes .../main/res/drawable-xxxhdpi/ic_launcher.png | Bin 9637 -> 4541 bytes app/src/main/res/layout/browser__fragment.xml | 2 +- ... => recycler_list__list_item_with_fav.xml} | 2 +- ...ialog.xml => ui__dialog__color_picker.xml} | 0 app/src/main/res/menu/main__menu_bottom.xml | 15 +- app/src/main/res/menu/main__menu_top.xml | 2 +- app/src/main/res/menu/main__navdrawer.xml | 6 +- app/src/main/res/menu/stream__menu_bottom.xml | 16 +- app/src/main/res/menu/stream__menu_top.xml | 4 +- app/src/main/res/raw/podlist.json | 72 ++++----- app/src/main/res/values-cs/strings-about.xml | 7 - .../res/values-cs/strings-preferences.xml | 23 --- app/src/main/res/values-cs/strings.xml | 12 -- app/src/main/res/values-el/strings-about.xml | 7 - .../res/values-el/strings-preferences.xml | 23 --- app/src/main/res/values-el/strings.xml | 12 -- app/src/main/res/values-hi/strings-about.xml | 7 - .../res/values-hi/strings-preferences.xml | 23 --- app/src/main/res/values-hi/strings.xml | 12 -- app/src/main/res/values-hu/strings-about.xml | 7 - .../res/values-hu/strings-preferences.xml | 23 --- app/src/main/res/values-hu/strings.xml | 12 -- app/src/main/res/values-nl/strings-about.xml | 7 - .../res/values-nl/strings-preferences.xml | 45 ------ app/src/main/res/values-nl/strings.xml | 64 -------- app/src/main/res/values-no/strings-about.xml | 7 - .../res/values-no/strings-preferences.xml | 23 --- app/src/main/res/values-no/strings.xml | 12 -- app/src/main/res/values-pt/strings-about.xml | 7 - .../res/values-pt/strings-preferences.xml | 23 --- app/src/main/res/values-pt/strings.xml | 12 -- app/src/main/res/values-sv/strings-about.xml | 7 - .../res/values-sv/strings-preferences.xml | 23 --- app/src/main/res/values-sv/strings.xml | 12 -- app/src/main/res/values-tr/strings-about.xml | 7 - .../res/values-tr/strings-preferences.xml | 23 --- app/src/main/res/values-tr/strings.xml | 12 -- app/src/main/res/values/color.xml | 19 ++- app/src/main/res/xml/preferences__master.xml | 26 +-- .../res/xml/preferences__sub_debugging.xml | 8 +- .../xml/preferences__sub_navslider_vis.xml | 26 +-- .../main/res/xml/preferences__sub_proxy.xml | 6 +- .../main/res/xml/preferences__sub_themes.xml | 8 +- crowdin.yaml | 38 ++--- 103 files changed, 555 insertions(+), 1015 deletions(-) create mode 100644 app/src/main/ic_launcher-web.png rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => activity}/AspectListFragment.java (93%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => activity}/DiasporaStreamFragment.java (96%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => activity}/PodSelectionFragment.java (93%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment/HashtagListFragment.java => activity/TagListFragment.java} (94%) rename app/src/main/java/com/github/dfa/diaspora_android/data/{PodAspect.java => DiasporaAspect.java} (87%) rename app/src/main/java/com/github/dfa/diaspora_android/data/{PodUserProfile.java => DiasporaUserProfile.java} (82%) create mode 100644 app/src/main/java/com/github/dfa/diaspora_android/listener/DiasporaUserProfileChangedListener.java rename app/src/main/java/com/github/dfa/diaspora_android/{ui => listener}/IntellihideToolbarActivityListener.java (90%) delete mode 100644 app/src/main/java/com/github/dfa/diaspora_android/listener/WebUserProfileChangedListener.java rename app/src/main/java/com/github/dfa/diaspora_android/{util => service}/AvatarImageLoader.java (94%) rename app/src/main/java/com/github/dfa/diaspora_android/{task/GetPodsService.java => service/FetchPodsService.java} (96%) rename app/src/main/java/com/github/dfa/diaspora_android/{data/HashtagProvider.java => service/HashtagContentProvider.java} (93%) rename app/src/main/java/com/github/dfa/diaspora_android/{task => service}/ImageDownloadTask.java (98%) rename app/src/main/java/com/github/dfa/diaspora_android/{task => service}/ProfileFetchTask.java (95%) rename app/src/main/java/com/github/dfa/diaspora_android/{task => service}/StatisticsFetchTask.java (98%) rename app/src/main/java/com/github/dfa/diaspora_android/{util/theming => ui/theme}/ColorPalette.java (99%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => ui/theme}/CustomFragment.java (96%) rename app/src/main/java/com/github/dfa/diaspora_android/{util/theming => ui/theme}/ThemeHelper.java (92%) rename app/src/main/java/com/github/dfa/diaspora_android/ui/{ => theme}/Themeable.java (74%) rename app/src/main/java/com/github/dfa/diaspora_android/{activity => ui/theme}/ThemedActivity.java (93%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => ui/theme}/ThemedAppCompatDialogFragment.java (77%) rename app/src/main/java/com/github/dfa/diaspora_android/ui/{ => theme}/ThemedCheckBoxPreference.java (85%) rename app/src/main/java/com/github/dfa/diaspora_android/ui/{ => theme}/ThemedColorPickerPreference.java (95%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => ui/theme}/ThemedFragment.java (88%) rename app/src/main/java/com/github/dfa/diaspora_android/ui/{ => theme}/ThemedPreferenceCategory.java (86%) rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => ui/theme}/ThemedPreferenceFragment.java (86%) rename app/src/main/java/com/github/dfa/diaspora_android/ui/{ => theme}/ThemedVisibilityPreference.java (86%) rename app/src/main/java/com/github/dfa/diaspora_android/{data => util}/AppSettings.java (97%) delete mode 100644 app/src/main/java/com/github/dfa/diaspora_android/util/Log.java rename app/src/main/java/com/github/dfa/diaspora_android/{fragment => web}/BrowserFragment.java (96%) rename app/src/main/java/com/github/dfa/diaspora_android/{ui => web}/ContextMenuWebView.java (99%) rename app/src/main/java/com/github/dfa/diaspora_android/{webview => web}/CustomWebViewClient.java (98%) rename app/src/main/java/com/github/dfa/diaspora_android/{webview => web}/DiasporaStreamWebChromeClient.java (95%) rename app/src/main/java/com/github/dfa/diaspora_android/{webview => web}/FileUploadWebChromeClient.java (97%) rename app/src/main/java/com/github/dfa/diaspora_android/{ui => web}/NestedWebView.java (99%) rename app/src/main/java/com/github/dfa/diaspora_android/{webview => web}/ProgressBarWebChromeClient.java (96%) rename app/src/main/java/com/github/dfa/diaspora_android/{util => web}/ProxyHandler.java (96%) rename app/src/main/java/com/github/dfa/diaspora_android/{util => web}/WebHelper.java (99%) rename app/src/main/java/com/github/dfa/diaspora_android/{util/CustomTabHelpers => web/custom_tab}/BrowserFallback.java (95%) rename app/src/main/java/com/github/dfa/diaspora_android/{util/CustomTabHelpers => web/custom_tab}/CustomTabActivityHelper.java (98%) rename app/src/main/java/com/github/dfa/diaspora_android/{util/CustomTabHelpers => web/custom_tab}/CustomTabsHelper.java (98%) rename app/src/main/res/layout/{recycler_view__list_item.xml => recycler_list__list_item_with_fav.xml} (100%) rename app/src/main/res/layout/{color_picker__dialog.xml => ui__dialog__color_picker.xml} (100%) delete mode 100644 app/src/main/res/values-cs/strings-about.xml delete mode 100644 app/src/main/res/values-cs/strings-preferences.xml delete mode 100644 app/src/main/res/values-cs/strings.xml delete mode 100644 app/src/main/res/values-el/strings-about.xml delete mode 100644 app/src/main/res/values-el/strings-preferences.xml delete mode 100644 app/src/main/res/values-el/strings.xml delete mode 100644 app/src/main/res/values-hi/strings-about.xml delete mode 100644 app/src/main/res/values-hi/strings-preferences.xml delete mode 100644 app/src/main/res/values-hi/strings.xml delete mode 100644 app/src/main/res/values-hu/strings-about.xml delete mode 100644 app/src/main/res/values-hu/strings-preferences.xml delete mode 100644 app/src/main/res/values-hu/strings.xml delete mode 100644 app/src/main/res/values-nl/strings-about.xml delete mode 100644 app/src/main/res/values-nl/strings-preferences.xml delete mode 100644 app/src/main/res/values-nl/strings.xml delete mode 100644 app/src/main/res/values-no/strings-about.xml delete mode 100644 app/src/main/res/values-no/strings-preferences.xml delete mode 100644 app/src/main/res/values-no/strings.xml delete mode 100644 app/src/main/res/values-pt/strings-about.xml delete mode 100644 app/src/main/res/values-pt/strings-preferences.xml delete mode 100644 app/src/main/res/values-pt/strings.xml delete mode 100644 app/src/main/res/values-sv/strings-about.xml delete mode 100644 app/src/main/res/values-sv/strings-preferences.xml delete mode 100644 app/src/main/res/values-sv/strings.xml delete mode 100644 app/src/main/res/values-tr/strings-about.xml delete mode 100644 app/src/main/res/values-tr/strings-preferences.xml delete mode 100644 app/src/main/res/values-tr/strings.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e7386c55..0d4976f4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,11 +14,11 @@ android:theme="@style/DiasporaLight" > diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..39e2810350a6c1ccde8232d88df709e803be646c GIT binary patch literal 16446 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 LbyTVzSx5X2`)pu- literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/github/dfa/diaspora_android/App.java b/app/src/main/java/com/github/dfa/diaspora_android/App.java index 7ca0115f..d6fcdba0 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/App.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/App.java @@ -27,10 +27,10 @@ import android.webkit.CookieManager; import android.webkit.CookieSyncManager; import android.webkit.WebView; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.data.PodUserProfile; +import com.github.dfa.diaspora_android.data.DiasporaUserProfile; +import com.github.dfa.diaspora_android.service.AvatarImageLoader; import com.github.dfa.diaspora_android.util.AppLog; -import com.github.dfa.diaspora_android.util.AvatarImageLoader; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; public class App extends Application { @@ -38,7 +38,7 @@ public class App extends Application { private AppSettings appSettings; private AvatarImageLoader avatarImageLoader; private CookieManager cookieManager; - private PodUserProfile podUserProfile; + private DiasporaUserProfile diasporaUserProfile; @Override public void onCreate() { @@ -52,7 +52,7 @@ public class App extends Application { // Init pod profile avatarImageLoader = new AvatarImageLoader(c); - podUserProfile = new PodUserProfile(this); + diasporaUserProfile = new DiasporaUserProfile(this); // Get cookie manager @@ -87,8 +87,8 @@ public class App extends Application { } } - public PodUserProfile getPodUserProfile() { - return podUserProfile; + public DiasporaUserProfile getDiasporaUserProfile() { + return diasporaUserProfile; } public AppSettings getSettings() { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/AboutActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/AboutActivity.java index 48a00d90..83d8a64f 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/AboutActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/AboutActivity.java @@ -43,15 +43,15 @@ 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.fragment.ThemedFragment; +import com.github.dfa.diaspora_android.listener.IntellihideToolbarActivityListener; import com.github.dfa.diaspora_android.ui.HtmlTextView; -import com.github.dfa.diaspora_android.ui.IntellihideToolbarActivityListener; +import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; +import com.github.dfa.diaspora_android.ui.theme.ThemedActivity; +import com.github.dfa.diaspora_android.ui.theme.ThemedFragment; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; import com.github.dfa.diaspora_android.util.Helpers; -import com.github.dfa.diaspora_android.util.Log; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; import java.util.Observable; import java.util.Observer; @@ -316,7 +316,7 @@ public class AboutActivity extends ThemedActivity public boolean onLongClick(View view) { if (isAdded()) { ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(CLIPBOARD_SERVICE); - ClipData clip = ClipData.newPlainText("DEBUG_LOG", Log.getLogBuffer()); + ClipData clip = ClipData.newPlainText("DEBUG_LOG", AppLog.Log.getLogBuffer()); clipboard.setPrimaryClip(clip); Toast.makeText(DebugFragment.this.getActivity(), R.string.fragment_debug__toast_log_copied, Toast.LENGTH_SHORT).show(); } else { @@ -325,8 +325,8 @@ public class AboutActivity extends ThemedActivity return true; } }); - Log.addLogObserver(this); - update(Log.getInstance(), null); + AppLog.Log.addLogObserver(this); + update(AppLog.Log.getInstance(), null); if (isAdded()) { try { @@ -353,14 +353,14 @@ public class AboutActivity extends ThemedActivity @Override public void onDestroyView() { - Log.removeLogObserver(this); + AppLog.Log.removeLogObserver(this); super.onDestroyView(); } @Override public void update(Observable observable, Object o) { if (logBox != null) { - logBox.setText(Log.getLogBuffer()); + logBox.setText(AppLog.Log.getLogBuffer()); } } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/AspectListFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/AspectListFragment.java similarity index 93% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/AspectListFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/activity/AspectListFragment.java index 1952ecc3..2eee623f 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/AspectListFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/AspectListFragment.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.activity; import android.content.Context; import android.graphics.PorterDuff; @@ -34,11 +34,11 @@ import android.widget.TextView; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.data.PodAspect; +import com.github.dfa.diaspora_android.data.DiasporaAspect; import com.github.dfa.diaspora_android.listener.OnSomethingClickListener; +import com.github.dfa.diaspora_android.ui.theme.ThemedFragment; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; import com.github.dfa.diaspora_android.util.Helpers; @@ -114,7 +114,7 @@ public class AspectListFragment extends ThemedFragment implements OnSomethingCli public static class AspectAdapter extends RecyclerView.Adapter { private AppSettings appSettings; - private PodAspect[] aspectList; + private DiasporaAspect[] aspectList; private List aspectFavsList; private OnSomethingClickListener aspectClickedListener; @@ -148,7 +148,7 @@ public class AspectListFragment extends ThemedFragment implements OnSomethingCli @Override public AspectAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.recycler_view__list_item, parent, false); + .inflate(R.layout.recycler_list__list_item_with_fav, parent, false); return new ViewHolder(v); } @@ -156,10 +156,10 @@ public class AspectListFragment extends ThemedFragment implements OnSomethingCli public void onBindViewHolder(final ViewHolder holder, int position) { // Alternating colors final Context c = holder.root.getContext(); - final PodAspect aspect = aspectList[position]; + final DiasporaAspect aspect = aspectList[position]; holder.title.setText(aspect.name); if (position % 2 == 1) { - holder.root.setBackgroundColor(Helpers.getColorFromRessource(c, R.color.md_grey_300)); + holder.root.setBackgroundColor(Helpers.getColorFromRessource(c, R.color.alternate_row_color)); } // Favourite (Star) Image diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/DiasporaStreamFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java similarity index 96% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/DiasporaStreamFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java index 89e8de24..2e02f5fe 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/DiasporaStreamFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/DiasporaStreamFragment.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.activity; import android.Manifest; import android.animation.ObjectAnimator; @@ -42,14 +42,14 @@ import android.webkit.WebView; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.PodUserProfile; +import com.github.dfa.diaspora_android.data.DiasporaUserProfile; import com.github.dfa.diaspora_android.util.AppLog; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; import com.github.dfa.diaspora_android.util.Helpers; -import com.github.dfa.diaspora_android.util.WebHelper; -import com.github.dfa.diaspora_android.webview.DiasporaStreamWebChromeClient; -import com.github.dfa.diaspora_android.webview.FileUploadWebChromeClient; +import com.github.dfa.diaspora_android.web.BrowserFragment; +import com.github.dfa.diaspora_android.web.DiasporaStreamWebChromeClient; +import com.github.dfa.diaspora_android.web.FileUploadWebChromeClient; +import com.github.dfa.diaspora_android.web.WebHelper; import org.json.JSONException; @@ -328,13 +328,13 @@ public class DiasporaStreamFragment extends BrowserFragment { @SuppressWarnings("unused") @JavascriptInterface public void setUserProfile(final String webMessage) throws JSONException { - PodUserProfile pup = ((App) getActivity().getApplication()).getPodUserProfile(); + DiasporaUserProfile pup = ((App) getActivity().getApplication()).getDiasporaUserProfile(); AppLog.spam(this, "StreamFragment.JavaScriptInterface.setUserProfile()"); if (pup.isRefreshNeeded()) { - AppLog.v(this, "PodUserProfile needs refresh; Try to parse JSON"); + AppLog.v(this, "DiasporaUserProfile needs refresh; Try to parse JSON"); pup.parseJson(webMessage); } else { - AppLog.spam(this, "No PodUserProfile refresh needed"); + AppLog.spam(this, "No DiasporaUserProfile refresh needed"); } } 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 9ede6ec8..e5b77eb5 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 @@ -59,37 +59,34 @@ 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.AspectListFragment; -import com.github.dfa.diaspora_android.fragment.BrowserFragment; -import com.github.dfa.diaspora_android.fragment.CustomFragment; -import com.github.dfa.diaspora_android.fragment.DiasporaStreamFragment; -import com.github.dfa.diaspora_android.fragment.HashtagListFragment; -import com.github.dfa.diaspora_android.fragment.PodSelectionFragment; -import com.github.dfa.diaspora_android.listener.WebUserProfileChangedListener; +import com.github.dfa.diaspora_android.data.DiasporaUserProfile; +import com.github.dfa.diaspora_android.listener.DiasporaUserProfileChangedListener; +import com.github.dfa.diaspora_android.listener.IntellihideToolbarActivityListener; import com.github.dfa.diaspora_android.receiver.OpenExternalLinkReceiver; import com.github.dfa.diaspora_android.receiver.UpdateTitleReceiver; import com.github.dfa.diaspora_android.ui.BadgeDrawable; -import com.github.dfa.diaspora_android.ui.IntellihideToolbarActivityListener; import com.github.dfa.diaspora_android.ui.PodSelectionDialog; +import com.github.dfa.diaspora_android.ui.theme.CustomFragment; +import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; +import com.github.dfa.diaspora_android.ui.theme.ThemedActivity; import com.github.dfa.diaspora_android.util.AppLog; -import com.github.dfa.diaspora_android.util.CustomTabHelpers.CustomTabActivityHelper; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; -import com.github.dfa.diaspora_android.util.ProxyHandler; -import com.github.dfa.diaspora_android.util.WebHelper; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.web.BrowserFragment; +import com.github.dfa.diaspora_android.web.ProxyHandler; +import com.github.dfa.diaspora_android.web.WebHelper; +import com.github.dfa.diaspora_android.web.custom_tab.CustomTabActivityHelper; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends ThemedActivity implements NavigationView.OnNavigationItemSelectedListener, - WebUserProfileChangedListener, + DiasporaUserProfileChangedListener, CustomTabActivityHelper.ConnectionCallback, IntellihideToolbarActivityListener, - PodSelectionDialog.PodSelectionDialogResultListener{ + PodSelectionDialog.PodSelectionDialogResultListener { public static final int REQUEST_CODE_ASK_PERMISSIONS = 123; @@ -110,7 +107,7 @@ public class MainActivity extends ThemedActivity private CustomTabActivityHelper customTabActivityHelper; private AppSettings appSettings; private DiasporaUrlHelper urls; - private PodUserProfile podUserProfile; + private DiasporaUserProfile diasporaUserProfile; private final Handler uiHandler = new Handler(); private OpenExternalLinkReceiver brOpenExternalLink; private BroadcastReceiver brSetTitle; @@ -168,10 +165,10 @@ public class MainActivity extends ThemedActivity if ((app = (App) getApplication()) == null) AppLog.e(this, "App is null!"); if ((appSettings = app.getSettings()) == null) AppLog.e(this, "AppSettings is null!"); - if ((podUserProfile = app.getPodUserProfile()) == null) - AppLog.e(this, "PodUserProfile is null!"); - podUserProfile.setCallbackHandler(uiHandler); - podUserProfile.setListener(this); + if ((diasporaUserProfile = app.getDiasporaUserProfile()) == null) + AppLog.e(this, "DiasporaUserProfile is null!"); + diasporaUserProfile.setCallbackHandler(uiHandler); + diasporaUserProfile.setListener(this); urls = new DiasporaUrlHelper(appSettings); customTabActivityHelper = new CustomTabActivityHelper(); customTabActivityHelper.setConnectionCallback(this); @@ -283,8 +280,8 @@ public class MainActivity extends ThemedActivity BrowserFragment bf = new BrowserFragment(); fm.beginTransaction().add(bf, fragmentTag).commit(); return bf; - case HashtagListFragment.TAG: - HashtagListFragment hlf = new HashtagListFragment(); + case TagListFragment.TAG: + TagListFragment hlf = new TagListFragment(); fm.beginTransaction().add(hlf, fragmentTag).commit(); return hlf; case AspectListFragment.TAG: @@ -627,12 +624,12 @@ public class MainActivity extends ThemedActivity if ((item = menu.findItem(R.id.action_notifications)) != null) { LayerDrawable icon = (LayerDrawable) item.getIcon(); - BadgeDrawable.setBadgeCount(this, icon, podUserProfile.getNotificationCount()); + BadgeDrawable.setBadgeCount(this, icon, diasporaUserProfile.getNotificationCount()); } if ((item = menu.findItem(R.id.action_conversations)) != null) { LayerDrawable icon = (LayerDrawable) item.getIcon(); - BadgeDrawable.setBadgeCount(this, icon, podUserProfile.getUnreadMessagesCount()); + BadgeDrawable.setBadgeCount(this, icon, diasporaUserProfile.getUnreadMessagesCount()); } return super.onPrepareOptionsMenu(menu); } @@ -648,7 +645,7 @@ public class MainActivity extends ThemedActivity AppLog.i(this, "onOptionsItemSelected()"); switch (item.getItemId()) { case R.id.action_notifications: { - if(appSettings.isExtendedNotificationsActivated()) { + if (appSettings.isExtendedNotificationsActivated()) { return true; } //Otherwise we execute the action of action_notifications_all @@ -803,25 +800,17 @@ public class MainActivity extends ThemedActivity return super.onOptionsItemSelected(item); } - /** - * Update the profile name in the navigation slider - * - * @param name name - */ @Override - public void onUserProfileNameChanged(String name) { + public void onUserProfileNameChanged(DiasporaUserProfile diasporaUserProfile, String name) { AppLog.i(this, "onUserProfileNameChanged()"); + // Update the profile name in the navigation slider navheaderTitle.setText(name); } - /** - * Update the profile picture in the navigation slider - * - * @param avatarUrl url of the new profile pic - */ @Override - public void onUserProfileAvatarChanged(String avatarUrl) { + public void onUserProfileAvatarChanged(DiasporaUserProfile diasporaUserProfile, String avatarUrl) { AppLog.i(this, "onUserProfileAvatarChanged()"); + // Update the profile picture in the navigation slider app.getAvatarImageLoader().startImageDownload(navheaderImage, avatarUrl); } @@ -916,27 +905,20 @@ public class MainActivity extends ThemedActivity Toast.makeText(this, "Not yet implemented.", Toast.LENGTH_SHORT).show(); } - /** - * Invalidate the top toolbar to update the notification counter - * - * @param notificationCount new notification count - */ @Override - public void onNotificationCountChanged(int notificationCount) { + public void onNotificationCountChanged(DiasporaUserProfile diasporaUserProfile, int notificationCount) { AppLog.i(this, "onNotificationCountChanged()"); - // Count saved in PodUserProfile + // Count saved in DiasporaUserProfile + // Invalidate the top toolbar to update the unread messages counter invalidateOptionsMenu(); } - /** - * Invalidate the top toolbar to update the unread messages counter - * - * @param unreadMessageCount new unread messages count - */ + @Override - public void onUnreadMessageCountChanged(int unreadMessageCount) { + public void onUnreadMessageCountChanged(DiasporaUserProfile diasporaUserProfile, int unreadMessageCount) { AppLog.i(this, "onUnreadMessageCountChanged()"); - // Count saved in PodUserProfile + // Count saved in DiasporaUserProfile + // Invalidate the top toolbar to update the unread messages counter invalidateOptionsMenu(); } @@ -950,7 +932,7 @@ public class MainActivity extends ThemedActivity @Override public void onPodSelectionDialogResult(DiasporaPodList.DiasporaPod pod, boolean accepted) { - if(accepted) { + if (accepted) { invalidateOptionsMenu(); navheaderDescription.setText(pod.getName()); } @@ -986,7 +968,7 @@ public class MainActivity extends ThemedActivity break; case R.id.nav_followed_tags: { - showFragment(getFragment(HashtagListFragment.TAG)); + showFragment(getFragment(TagListFragment.TAG)); } break; @@ -997,7 +979,7 @@ public class MainActivity extends ThemedActivity break; case R.id.nav_contacts: { - if(WebHelper.isOnline(MainActivity.this)) { + if (WebHelper.isOnline(MainActivity.this)) { openDiasporaUrl(urls.getManageContactsUrl()); } else { snackbarNoInternet.show(); 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/activity/PodSelectionFragment.java similarity index 93% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/PodSelectionFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/activity/PodSelectionFragment.java index 62e64325..806cda26 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/PodSelectionFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/PodSelectionFragment.java @@ -16,13 +16,12 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.support.design.widget.Snackbar; @@ -43,16 +42,15 @@ import android.widget.TextView; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; import com.github.dfa.diaspora_android.data.DiasporaPodList; import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod; -import com.github.dfa.diaspora_android.task.GetPodsService; +import com.github.dfa.diaspora_android.service.FetchPodsService; import com.github.dfa.diaspora_android.ui.PodSelectionDialog; +import com.github.dfa.diaspora_android.ui.theme.ThemedFragment; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; import com.github.dfa.diaspora_android.util.Helpers; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; import org.json.JSONException; import org.json.JSONObject; @@ -117,7 +115,7 @@ public class PodSelectionFragment extends ThemedFragment implements SearchView.O } }); - LocalBroadcastManager.getInstance(getContext()).registerReceiver(podListReceiver, new IntentFilter(GetPodsService.MESSAGE_PODS_RECEIVED)); + LocalBroadcastManager.getInstance(getContext()).registerReceiver(podListReceiver, new IntentFilter(FetchPodsService.MESSAGE_PODS_RECEIVED)); Helpers.showInfoIfUserNotConnectedToInternet(getContext(), listViewPod); } @@ -144,9 +142,9 @@ public class PodSelectionFragment extends ThemedFragment implements SearchView.O private final BroadcastReceiver podListReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - if (intent.hasExtra(GetPodsService.EXTRA_PODLIST)) { + if (intent.hasExtra(FetchPodsService.EXTRA_PODLIST)) { Bundle extras = intent.getExtras(); - DiasporaPodList newPods = (DiasporaPodList) extras.get(GetPodsService.EXTRA_PODLIST); + DiasporaPodList newPods = (DiasporaPodList) extras.get(FetchPodsService.EXTRA_PODLIST); if (newPods != null && newPods.getPods().size() > 0) { try { podList.mergeWithNewerEntries(newPods); @@ -168,7 +166,7 @@ public class PodSelectionFragment extends ThemedFragment implements SearchView.O @Override public void onResume() { super.onResume(); - Intent i = new Intent(getContext(), GetPodsService.class); + Intent i = new Intent(getContext(), FetchPodsService.class); getContext().startService(i); } @@ -222,7 +220,7 @@ public class PodSelectionFragment extends ThemedFragment implements SearchView.O switch (item.getItemId()) { case R.id.action_reload: { if (!Helpers.showInfoIfUserNotConnectedToInternet(getContext(), listViewPod)) { - Intent i = new Intent(getContext(), GetPodsService.class); + Intent i = new Intent(getContext(), FetchPodsService.class); getContext().startService(i); return true; } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java index 009585d0..1488a0b9 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java @@ -22,13 +22,14 @@ import android.widget.TextView; 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.fragment.ThemedPreferenceFragment; +import com.github.dfa.diaspora_android.ui.theme.ColorPalette; +import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; +import com.github.dfa.diaspora_android.ui.theme.ThemedActivity; +import com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceFragment; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; -import com.github.dfa.diaspora_android.util.ProxyHandler; -import com.github.dfa.diaspora_android.util.theming.ColorPalette; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.web.ProxyHandler; import butterknife.BindView; import butterknife.ButterKnife; @@ -72,7 +73,7 @@ public class SettingsActivity extends ThemedActivity { protected void showFragment(String tag, boolean addToBackStack) { PreferenceFragment fragment = (PreferenceFragment) getFragmentManager().findFragmentByTag(tag); - if(fragment == null) { + if (fragment == null) { switch (tag) { case SettingsFragmentThemes.TAG: fragment = new SettingsFragmentThemes(); @@ -93,7 +94,7 @@ public class SettingsActivity extends ThemedActivity { } } FragmentTransaction t = getFragmentManager().beginTransaction(); - if(addToBackStack) { + if (addToBackStack) { t.addToBackStack(tag); } t.replace(R.id.settings__fragment_container, fragment, tag).commit(); @@ -142,26 +143,26 @@ public class SettingsActivity extends ThemedActivity { @Override public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { - if(isAdded() && preference.hasKey()) { - AppSettings settings = ((App)getActivity().getApplication()).getSettings(); + if (isAdded() && preference.hasKey()) { + AppSettings settings = ((App) getActivity().getApplication()).getSettings(); DiasporaUrlHelper diasporaUrlHelper = new DiasporaUrlHelper(settings); String key = preference.getKey(); /** Sub-Categories */ - if(settings.isKeyEqual(key,R.string.pref_key__cat_themes)) { + if (settings.isKeyEqual(key, R.string.pref_key__cat_themes)) { ((SettingsActivity) getActivity()).showFragment(SettingsFragmentThemes.TAG, true); return true; - } else if (settings.isKeyEqual(key,R.string.pref_key__cat_nav_slider)) { + } else if (settings.isKeyEqual(key, R.string.pref_key__cat_nav_slider)) { ((SettingsActivity) getActivity()).showFragment(SettingsFragmentNavSlider.TAG, true); return true; - } else if (settings.isKeyEqual(key,R.string.pref_key__cat_proxy)) { - ((SettingsActivity)getActivity()).showFragment(SettingsFragmentProxy.TAG, true); + } else if (settings.isKeyEqual(key, R.string.pref_key__cat_proxy)) { + ((SettingsActivity) getActivity()).showFragment(SettingsFragmentProxy.TAG, true); return true; - } else if (settings.isKeyEqual(key,R.string.pref_key__cat_debugging)) { - ((SettingsActivity)getActivity()).showFragment(SettingsFragmentDebugging.TAG, true); + } else if (settings.isKeyEqual(key, R.string.pref_key__cat_debugging)) { + ((SettingsActivity) getActivity()).showFragment(SettingsFragmentDebugging.TAG, true); return true; } /** Network */ - else if (settings.isKeyEqual(key,R.string.pref_key__clear_cache)) { + else if (settings.isKeyEqual(key, R.string.pref_key__clear_cache)) { Intent intent = new Intent(getActivity(), MainActivity.class); intent.setAction(MainActivity.ACTION_CLEAR_CACHE); startActivity(intent); @@ -169,28 +170,28 @@ public class SettingsActivity extends ThemedActivity { return true; } /** Pod Settings */ - if (settings.isKeyEqual(key,R.string.pref_key__personal_settings)) { + if (settings.isKeyEqual(key, R.string.pref_key__personal_settings)) { Intent intent = new Intent(getActivity(), MainActivity.class); intent.setAction(MainActivity.ACTION_OPEN_URL); intent.putExtra(MainActivity.URL_MESSAGE, diasporaUrlHelper.getPersonalSettingsUrl()); startActivity(intent); getActivity().finish(); return true; - } else if (settings.isKeyEqual(key,R.string.pref_key__manage_tags)) { + } else if (settings.isKeyEqual(key, R.string.pref_key__manage_tags)) { Intent intent = new Intent(getActivity(), MainActivity.class); intent.setAction(MainActivity.ACTION_OPEN_URL); intent.putExtra(MainActivity.URL_MESSAGE, diasporaUrlHelper.getManageTagsUrl()); startActivity(intent); getActivity().finish(); return true; - } else if (settings.isKeyEqual(key,R.string.pref_key__manage_contacts)) { + } else if (settings.isKeyEqual(key, R.string.pref_key__manage_contacts)) { Intent intent = new Intent(getActivity(), MainActivity.class); intent.setAction(MainActivity.ACTION_OPEN_URL); intent.putExtra(MainActivity.URL_MESSAGE, diasporaUrlHelper.getManageContactsUrl()); startActivity(intent); getActivity().finish(); return true; - } else if (settings.isKeyEqual(key,R.string.pref_key__change_account)) { + } else if (settings.isKeyEqual(key, R.string.pref_key__change_account)) { new AlertDialog.Builder(getActivity()) .setTitle(getString(R.string.confirmation)) .setMessage(getString(R.string.pref_warning__change_account)) @@ -224,7 +225,7 @@ public class SettingsActivity extends ThemedActivity { @Override public void updateViewColors() { - if(isAdded()) { + if (isAdded()) { //Trigger redraw of whole preference screen in order to reflect changes setPreferenceScreen(null); addPreferencesFromResource(R.xml.preferences__sub_themes); @@ -235,7 +236,7 @@ public class SettingsActivity extends ThemedActivity { public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { if (isAdded() && preference.hasKey()) { String key = preference.getKey(); - if(key.equals(getString(R.string.pref_key__primary_color__preference_click))) { + if (key.equals(getString(R.string.pref_key__primary_color__preference_click))) { showColorPickerDialog(1); return true; } else if (key.equals(getString(R.string.pref_key__accent_color__preference_click))) { @@ -257,7 +258,7 @@ public class SettingsActivity extends ThemedActivity { //Inflate dialog layout LayoutInflater inflater = getActivity().getLayoutInflater(); - View dialogLayout = inflater.inflate(R.layout.color_picker__dialog, null); + View dialogLayout = inflater.inflate(R.layout.ui__dialog__color_picker, null); final android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(context); builder.setView(dialogLayout); @@ -305,7 +306,7 @@ public class SettingsActivity extends ThemedActivity { if (Build.VERSION.SDK_INT >= 21) { getActivity().getWindow().setStatusBarColor(ThemeHelper.getPrimaryDarkColor()); } - ((ThemedActivity) getActivity()).applyColorToViews(); + ((SettingsActivity) getActivity()).applyColorToViews(); } else { appSettings.setAccentColorSettings(base.getColor(), shade.getColor()); } @@ -348,7 +349,7 @@ public class SettingsActivity extends ThemedActivity { } public void updateSummaries() { - if(isAdded()) { + if (isAdded()) { AppSettings settings = ((App) getActivity().getApplication()).getSettings(); findPreference(settings.getKey(R.string.pref_key__http_proxy_host)).setSummary(settings.getProxyHttpHost()); findPreference(settings.getKey(R.string.pref_key__http_proxy_port)).setSummary(Integer.toString(settings.getProxyHttpPort())); @@ -360,7 +361,7 @@ public class SettingsActivity extends ThemedActivity { if (isAdded() && preference.hasKey()) { AppSettings appSettings = ((App) getActivity().getApplication()).getSettings(); String key = preference.getKey(); - if(appSettings.isKeyEqual(key, R.string.pref_key__http_proxy_load_tor_preset)) { + if (appSettings.isKeyEqual(key, R.string.pref_key__http_proxy_load_tor_preset)) { appSettings.setProxyHttpHost("127.0.0.1"); appSettings.setProxyHttpPort(8118); return true; @@ -376,7 +377,7 @@ public class SettingsActivity extends ThemedActivity { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if(isAdded()) { + if (isAdded()) { if (key.equals(getString(R.string.pref_key__http_proxy_host)) || key.equals(getString(R.string.pref_key__http_proxy_port))) { updateSummaries(); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/HashtagListFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/TagListFragment.java similarity index 94% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/HashtagListFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/activity/TagListFragment.java index 143c089a..6f016c39 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/HashtagListFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/TagListFragment.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.activity; import android.content.Context; import android.graphics.PorterDuff; @@ -34,10 +34,10 @@ import android.widget.TextView; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; import com.github.dfa.diaspora_android.listener.OnSomethingClickListener; +import com.github.dfa.diaspora_android.ui.theme.ThemedFragment; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; import com.github.dfa.diaspora_android.util.Helpers; @@ -51,9 +51,9 @@ import butterknife.ButterKnife; /** * Fragment that shows a list of the HashTags the user follows */ -public class HashtagListFragment extends ThemedFragment implements OnSomethingClickListener { +public class TagListFragment extends ThemedFragment implements OnSomethingClickListener { - public static final String TAG = "com.github.dfa.diaspora_android.HashtagListFragment"; + public static final String TAG = "com.github.dfa.diaspora_android.TagListFragment"; protected RecyclerView followedTagsRecyclerView; protected App app; @@ -147,7 +147,7 @@ public class HashtagListFragment extends ThemedFragment implements OnSomethingCl @Override public FollowedTagsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.recycler_view__list_item, parent, false); + .inflate(R.layout.recycler_list__list_item_with_fav, parent, false); return new ViewHolder(v); } @@ -158,7 +158,7 @@ public class HashtagListFragment extends ThemedFragment implements OnSomethingCl final String tag = followedTagsList[position]; holder.title.setText(tag); if (position % 2 == 1) { - holder.root.setBackgroundColor(Helpers.getColorFromRessource(c, R.color.md_grey_300)); + holder.root.setBackgroundColor(Helpers.getColorFromRessource(c, R.color.alternate_row_color)); } // Favourite (Star) Image diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/PodAspect.java b/app/src/main/java/com/github/dfa/diaspora_android/data/DiasporaAspect.java similarity index 87% rename from app/src/main/java/com/github/dfa/diaspora_android/data/PodAspect.java rename to app/src/main/java/com/github/dfa/diaspora_android/data/DiasporaAspect.java index 7c9c2fab..c37f01a4 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/data/PodAspect.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/data/DiasporaAspect.java @@ -19,25 +19,26 @@ package com.github.dfa.diaspora_android.data; import com.github.dfa.diaspora_android.App; +import com.github.dfa.diaspora_android.util.AppSettings; import org.json.JSONException; import org.json.JSONObject; import java.util.Locale; -public class PodAspect { +public class DiasporaAspect { public long id; public String name; public boolean selected; - public PodAspect(long id, String name, boolean selected) { + public DiasporaAspect(long id, String name, boolean selected) { this.id = id; this.name = name; this.selected = selected; } - public PodAspect(String shareabletext) { + public DiasporaAspect(String shareabletext) { // fromShareAbleText String[] str = shareabletext.split("%"); selected = Integer.parseInt(str[0]) == 1; @@ -45,7 +46,7 @@ public class PodAspect { name = shareabletext.substring(shareabletext.indexOf(str[1]) + str[1].length() + 1); } - public PodAspect(JSONObject json) throws JSONException { + public DiasporaAspect(JSONObject json) throws JSONException { if (json.has("id")) { id = json.getLong("id"); } @@ -81,7 +82,7 @@ public class PodAspect { @Override public boolean equals(Object o) { - return o instanceof PodAspect && ((PodAspect) o).id == id; + return o instanceof DiasporaAspect && ((DiasporaAspect) o).id == id; } public String toShareAbleText() { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/PodUserProfile.java b/app/src/main/java/com/github/dfa/diaspora_android/data/DiasporaUserProfile.java similarity index 82% rename from app/src/main/java/com/github/dfa/diaspora_android/data/PodUserProfile.java rename to app/src/main/java/com/github/dfa/diaspora_android/data/DiasporaUserProfile.java index dabd8b2d..f0886550 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/data/PodUserProfile.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/data/DiasporaUserProfile.java @@ -21,8 +21,9 @@ package com.github.dfa.diaspora_android.data; import android.os.Handler; import com.github.dfa.diaspora_android.App; -import com.github.dfa.diaspora_android.listener.WebUserProfileChangedListener; +import com.github.dfa.diaspora_android.listener.DiasporaUserProfileChangedListener; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import org.json.JSONArray; import org.json.JSONException; @@ -32,47 +33,47 @@ import org.json.JSONObject; * User profile * Created by gsantner (https://gsantner.github.io/) on 24.03.16. Part of Diaspora for Android. */ -public class PodUserProfile { - private static final int MINIMUM_WEBUSERPROFILE_LOAD_TIMEDIFF = 5000; +public class DiasporaUserProfile { + private static final int MINIMUM_USERPROFILE_LOAD_TIMEDIFF = 5000; private Handler callbackHandler; - private WebUserProfileChangedListener listener; + private DiasporaUserProfileChangedListener listener; private final App app; private final AppSettings appSettings; private JSONObject json; - private long lastLoaded; + private long userProfileLastLoadedTimestamp; private boolean isWebUserProfileLoaded; private String avatarUrl; private String guid; private String name; - private PodAspect[] podAspects; + private DiasporaAspect[] aspects; private String[] followedTags; private int notificationCount; private int unreadMessagesCount; - public PodUserProfile(App app) { + public DiasporaUserProfile(App app) { this.app = app; appSettings = app.getSettings(); avatarUrl = appSettings.getAvatarUrl(); guid = appSettings.getProfileId(); name = appSettings.getName(); - podAspects = appSettings.getAspects(); + aspects = appSettings.getAspects(); followedTags = appSettings.getFollowedTags(); notificationCount = appSettings.getNotificationCount(); unreadMessagesCount = appSettings.getUnreadMessageCount(); } - public PodUserProfile(App app, Handler callbackHandler, WebUserProfileChangedListener listener) { + public DiasporaUserProfile(App app, Handler callbackHandler, DiasporaUserProfileChangedListener listener) { this(app); this.listener = listener; this.callbackHandler = callbackHandler; } public boolean isRefreshNeeded() { - return (System.currentTimeMillis() - lastLoaded) >= MINIMUM_WEBUSERPROFILE_LOAD_TIMEDIFF; + return (System.currentTimeMillis() - userProfileLastLoadedTimestamp) >= MINIMUM_USERPROFILE_LOAD_TIMEDIFF; } public boolean isWebUserProfileLoaded() { @@ -82,7 +83,7 @@ public class PodUserProfile { public boolean parseJson(String jsonStr) { try { json = new JSONObject(jsonStr); - lastLoaded = System.currentTimeMillis(); + userProfileLastLoadedTimestamp = System.currentTimeMillis(); // Avatar if (json.has("avatar")) { @@ -115,7 +116,7 @@ public class PodUserProfile { // Aspect if (json.has("aspects") && loadAspects(json.getJSONArray("aspects"))) { - appSettings.setPodAspects(podAspects); + appSettings.setPodAspects(aspects); } // Followed tags @@ -129,7 +130,7 @@ public class PodUserProfile { AppLog.d(this, e.getMessage()); isWebUserProfileLoaded = false; } - lastLoaded = System.currentTimeMillis(); + userProfileLastLoadedTimestamp = System.currentTimeMillis(); return isWebUserProfileLoaded; } @@ -157,8 +158,8 @@ public class PodUserProfile { return unreadMessagesCount; } - public PodAspect[] getAspects() { - return podAspects; + public DiasporaAspect[] getAspects() { + return aspects; } public String[] getFollowedTags() { @@ -181,7 +182,7 @@ public class PodUserProfile { if (listener != null && callbackHandler != null) { callbackHandler.post(new Runnable() { public void run() { - listener.onUserProfileAvatarChanged(avatarUrl); + listener.onUserProfileAvatarChanged(DiasporaUserProfile.this, avatarUrl); } }); } @@ -204,7 +205,7 @@ public class PodUserProfile { if (listener != null && callbackHandler != null) { callbackHandler.post(new Runnable() { public void run() { - listener.onUserProfileNameChanged(name); + listener.onUserProfileNameChanged(DiasporaUserProfile.this, name); } }); } @@ -219,7 +220,7 @@ public class PodUserProfile { if (listener != null && callbackHandler != null) { callbackHandler.post(new Runnable() { public void run() { - listener.onNotificationCountChanged(notificationCount); + listener.onNotificationCountChanged(DiasporaUserProfile.this, notificationCount); } }); } @@ -229,9 +230,9 @@ public class PodUserProfile { } private boolean loadAspects(final JSONArray jsonAspects) throws JSONException { - podAspects = new PodAspect[jsonAspects.length()]; + aspects = new DiasporaAspect[jsonAspects.length()]; for (int i = 0; i < jsonAspects.length(); i++) { - podAspects[i] = new PodAspect(jsonAspects.getJSONObject(i)); + aspects[i] = new DiasporaAspect(jsonAspects.getJSONObject(i)); } return true; } @@ -250,7 +251,7 @@ public class PodUserProfile { if (listener != null && callbackHandler != null) { callbackHandler.post(new Runnable() { public void run() { - listener.onUnreadMessageCountChanged(unreadMessagesCount); + listener.onUnreadMessageCountChanged(DiasporaUserProfile.this, unreadMessagesCount); } }); } @@ -267,11 +268,11 @@ public class PodUserProfile { this.callbackHandler = callbackHandler; } - public WebUserProfileChangedListener getListener() { + public DiasporaUserProfileChangedListener getListener() { return listener; } - public void setListener(WebUserProfileChangedListener listener) { + public void setListener(DiasporaUserProfileChangedListener listener) { this.listener = listener; } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/listener/DiasporaUserProfileChangedListener.java b/app/src/main/java/com/github/dfa/diaspora_android/listener/DiasporaUserProfileChangedListener.java new file mode 100644 index 00000000..4de59701 --- /dev/null +++ b/app/src/main/java/com/github/dfa/diaspora_android/listener/DiasporaUserProfileChangedListener.java @@ -0,0 +1,55 @@ +/* + This file is part of the Diaspora for Android. + + Diaspora for Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Diaspora for Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the Diaspora for Android. + + If not, see . + */ +package com.github.dfa.diaspora_android.listener; + +import com.github.dfa.diaspora_android.data.DiasporaUserProfile; + +/** + * Created by gsantner (https://gsantner.github.io/) on 26.03.16. + * Interface that needs to be implemented by classes that listen for Profile related changes + */ +public interface DiasporaUserProfileChangedListener { + /** + * Called when the DiasporaUserProfile name changed + * @param diasporaUserProfile The profile + * @param name The new name + */ + void onUserProfileNameChanged(DiasporaUserProfile diasporaUserProfile, String name); + + /** + * Called when the DiasporaUserProfile avatarUrl changed + * @param diasporaUserProfile The profile + * @param avatarUrl The new name + */ + void onUserProfileAvatarChanged(DiasporaUserProfile diasporaUserProfile, String avatarUrl); + + /** + * Called when the DiasporaUserProfile notificationCount changed + * @param diasporaUserProfile The profile + * @param notificationCount The new notificationCount + */ + void onNotificationCountChanged(DiasporaUserProfile diasporaUserProfile, int notificationCount); + + /** + * Called when the DiasporaUserProfile unreadMessageCount changed + * @param diasporaUserProfile The profile + * @param unreadMessageCount The new unreadMessageCount + */ + void onUnreadMessageCountChanged(DiasporaUserProfile diasporaUserProfile, int unreadMessageCount); +} diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/IntellihideToolbarActivityListener.java b/app/src/main/java/com/github/dfa/diaspora_android/listener/IntellihideToolbarActivityListener.java similarity index 90% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/IntellihideToolbarActivityListener.java rename to app/src/main/java/com/github/dfa/diaspora_android/listener/IntellihideToolbarActivityListener.java index c3fd6406..dbb51587 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/IntellihideToolbarActivityListener.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/listener/IntellihideToolbarActivityListener.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.listener; import android.support.design.widget.AppBarLayout; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/listener/WebUserProfileChangedListener.java b/app/src/main/java/com/github/dfa/diaspora_android/listener/WebUserProfileChangedListener.java deleted file mode 100644 index 9ef24a1f..00000000 --- a/app/src/main/java/com/github/dfa/diaspora_android/listener/WebUserProfileChangedListener.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - This file is part of the Diaspora for Android. - - Diaspora for Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Diaspora for Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with the Diaspora for Android. - - If not, see . - */ -package com.github.dfa.diaspora_android.listener; - -/** - * Created by gsantner (https://gsantner.github.io/) on 26.03.16. - * Interface that needs to be implemented by classes that listen for Profile related changes - */ -public interface WebUserProfileChangedListener { - void onUserProfileNameChanged(String name); - - void onUserProfileAvatarChanged(String avatarUrl); - - void onNotificationCountChanged(int notificationCount); - - void onUnreadMessageCountChanged(int unreadMessageCount); -} diff --git a/app/src/main/java/com/github/dfa/diaspora_android/receiver/OpenExternalLinkReceiver.java b/app/src/main/java/com/github/dfa/diaspora_android/receiver/OpenExternalLinkReceiver.java index add3f685..a5456703 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/receiver/OpenExternalLinkReceiver.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/receiver/OpenExternalLinkReceiver.java @@ -29,11 +29,11 @@ import android.support.customtabs.CustomTabsIntent; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; +import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; import com.github.dfa.diaspora_android.util.AppLog; -import com.github.dfa.diaspora_android.util.CustomTabHelpers.BrowserFallback; -import com.github.dfa.diaspora_android.util.CustomTabHelpers.CustomTabActivityHelper; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; +import com.github.dfa.diaspora_android.web.custom_tab.BrowserFallback; +import com.github.dfa.diaspora_android.web.custom_tab.CustomTabActivityHelper; /** * BroadcastReceiver that opens links in a Chrome CustomTab diff --git a/app/src/main/java/com/github/dfa/diaspora_android/receiver/UpdateTitleReceiver.java b/app/src/main/java/com/github/dfa/diaspora_android/receiver/UpdateTitleReceiver.java index ca8eda16..c04f0ffe 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/receiver/UpdateTitleReceiver.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/receiver/UpdateTitleReceiver.java @@ -25,8 +25,8 @@ import android.content.Intent; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; /** diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AvatarImageLoader.java b/app/src/main/java/com/github/dfa/diaspora_android/service/AvatarImageLoader.java similarity index 94% rename from app/src/main/java/com/github/dfa/diaspora_android/util/AvatarImageLoader.java rename to app/src/main/java/com/github/dfa/diaspora_android/service/AvatarImageLoader.java index d8857d80..545273bd 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/AvatarImageLoader.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/service/AvatarImageLoader.java @@ -17,15 +17,13 @@ If not, see . */ -package com.github.dfa.diaspora_android.util; +package com.github.dfa.diaspora_android.service; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.widget.ImageView; -import com.github.dfa.diaspora_android.task.ImageDownloadTask; - import java.io.File; public class AvatarImageLoader { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/task/GetPodsService.java b/app/src/main/java/com/github/dfa/diaspora_android/service/FetchPodsService.java similarity index 96% rename from app/src/main/java/com/github/dfa/diaspora_android/task/GetPodsService.java rename to app/src/main/java/com/github/dfa/diaspora_android/service/FetchPodsService.java index 0b6a510b..46caccbc 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/task/GetPodsService.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/service/FetchPodsService.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.task; +package com.github.dfa.diaspora_android.service; import android.app.Service; import android.content.Intent; @@ -38,12 +38,12 @@ import javax.net.ssl.HttpsURLConnection; import info.guardianproject.netcipher.NetCipher; -public class GetPodsService extends Service { +public class FetchPodsService extends Service { public static final String EXTRA_PODLIST = "pods"; public static final String MESSAGE_PODS_RECEIVED = "com.github.dfa.diaspora.podsreceived"; public static final String PODDY_PODLIST_URL = "https://raw.githubusercontent.com/Diaspora-for-Android/diaspora-android-extras/master/podList/podlist.json"; - public GetPodsService() { + public FetchPodsService() { } @Override diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/HashtagProvider.java b/app/src/main/java/com/github/dfa/diaspora_android/service/HashtagContentProvider.java similarity index 93% rename from app/src/main/java/com/github/dfa/diaspora_android/data/HashtagProvider.java rename to app/src/main/java/com/github/dfa/diaspora_android/service/HashtagContentProvider.java index bcd18511..c345b4e5 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/data/HashtagProvider.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/service/HashtagContentProvider.java @@ -18,14 +18,14 @@ This file is inspired from sourabhsoni.com/implementing-hashtags-in-android-application/ */ -package com.github.dfa.diaspora_android.data; +package com.github.dfa.diaspora_android.service; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; -public class HashtagProvider extends ContentProvider { +public class HashtagContentProvider extends ContentProvider { @Override public int delete(Uri arg0, String arg1, String[] arg2) { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/task/ImageDownloadTask.java b/app/src/main/java/com/github/dfa/diaspora_android/service/ImageDownloadTask.java similarity index 98% rename from app/src/main/java/com/github/dfa/diaspora_android/task/ImageDownloadTask.java rename to app/src/main/java/com/github/dfa/diaspora_android/service/ImageDownloadTask.java index b7e9ff99..2b1902ed 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/task/ImageDownloadTask.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/service/ImageDownloadTask.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.task; +package com.github.dfa.diaspora_android.service; import android.graphics.Bitmap; import android.graphics.BitmapFactory; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/task/ProfileFetchTask.java b/app/src/main/java/com/github/dfa/diaspora_android/service/ProfileFetchTask.java similarity index 95% rename from app/src/main/java/com/github/dfa/diaspora_android/task/ProfileFetchTask.java rename to app/src/main/java/com/github/dfa/diaspora_android/service/ProfileFetchTask.java index e4b5835b..072b1f7e 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/task/ProfileFetchTask.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/service/ProfileFetchTask.java @@ -16,14 +16,14 @@ If not, see . */ -package com.github.dfa.diaspora_android.task; +package com.github.dfa.diaspora_android.service; import android.content.Context; import android.os.AsyncTask; import android.webkit.CookieManager; import com.github.dfa.diaspora_android.App; -import com.github.dfa.diaspora_android.data.PodUserProfile; +import com.github.dfa.diaspora_android.data.DiasporaUserProfile; import com.github.dfa.diaspora_android.util.AppLog; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; @@ -99,7 +99,7 @@ public class ProfileFetchTask extends AsyncTask { if (extractedProfileData != null) { - PodUserProfile profile = new PodUserProfile(app); + DiasporaUserProfile profile = new DiasporaUserProfile(app); profile.parseJson(extractedProfileData); AppLog.d(this, "Extracted new_messages (service):" + profile.getUnreadMessagesCount()); } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/task/StatisticsFetchTask.java b/app/src/main/java/com/github/dfa/diaspora_android/service/StatisticsFetchTask.java similarity index 98% rename from app/src/main/java/com/github/dfa/diaspora_android/task/StatisticsFetchTask.java rename to app/src/main/java/com/github/dfa/diaspora_android/service/StatisticsFetchTask.java index b8b0b0e9..f06bcbd7 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/task/StatisticsFetchTask.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/service/StatisticsFetchTask.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.task; +package com.github.dfa.diaspora_android.service; import android.content.Context; import android.os.AsyncTask; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/BadgeDrawable.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/BadgeDrawable.java index cc585aea..ef74eafc 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/BadgeDrawable.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/BadgeDrawable.java @@ -31,7 +31,7 @@ import android.graphics.drawable.LayerDrawable; import android.support.v4.content.ContextCompat; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.data.AppSettings; +import com.github.dfa.diaspora_android.util.AppSettings; public class BadgeDrawable extends Drawable { // Source: http://mobikul.com/adding-badge-count-on-menu-items-like-cart-notification-etc/ diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/HtmlTextView.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/HtmlTextView.java index 9274e701..fca6c04c 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/HtmlTextView.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/HtmlTextView.java @@ -36,7 +36,7 @@ import java.util.regex.Pattern; * TextView, that renders HTML with highlited and clickable links and hashtags. * Links are opened in a webbrowser. * Hashtags open the MainActivity, load the new-post site of the selected pod and insert the - * hashtag into the post editor. See data/HashtagProvider. + * hashtag into the post editor. See data/HashtagContentProvider. */ public class HtmlTextView extends TextView { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/PodSelectionDialog.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/PodSelectionDialog.java index 62a78550..663ae5f4 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/PodSelectionDialog.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/PodSelectionDialog.java @@ -5,7 +5,6 @@ import android.app.Dialog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatDialogFragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -18,12 +17,12 @@ import android.widget.TextView; 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.DiasporaPod; import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod.DiasporaPodUrl; -import com.github.dfa.diaspora_android.fragment.ThemedAppCompatDialogFragment; -import com.github.dfa.diaspora_android.util.ProxyHandler; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; +import com.github.dfa.diaspora_android.ui.theme.ThemedAppCompatDialogFragment; +import com.github.dfa.diaspora_android.util.AppSettings; +import com.github.dfa.diaspora_android.web.ProxyHandler; import org.json.JSONException; @@ -38,7 +37,7 @@ import butterknife.OnItemSelected; * Created by gsantner (https://gsantner.github.io) on 06.10.16. */ public class PodSelectionDialog extends ThemedAppCompatDialogFragment { - public static final String TAG = "com.github.dfa.diaspora_android.PodSelectionDialog"; + public static final String TAG = "com.github.dfa.diaspora_android.ui.PodSelectionDialog"; public static interface PodSelectionDialogResultListener { void onPodSelectionDialogResult(DiasporaPod pod, boolean accepted); @@ -145,7 +144,7 @@ public class PodSelectionDialog extends ThemedAppCompatDialogFragment { @Override protected AppSettings getAppSettings() { - if(isAdded()) { + if (isAdded()) { return ((App) getActivity().getApplication()).getSettings(); } else { return new AppSettings(getContext().getApplicationContext()); @@ -202,7 +201,7 @@ public class PodSelectionDialog extends ThemedAppCompatDialogFragment { pod.getPodUrls().add(podUrl); // Load Tor preset - if(pod.getPodUrl().getHost().endsWith(".onion") && checkboxTorPreset.isChecked()){ + if (pod.getPodUrl().getHost().endsWith(".onion") && checkboxTorPreset.isChecked()) { AppSettings settings = app.getSettings(); settings.setProxyHttpEnabled(true); settings.setProxyWasEnabled(false); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/theming/ColorPalette.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ColorPalette.java similarity index 99% rename from app/src/main/java/com/github/dfa/diaspora_android/util/theming/ColorPalette.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ColorPalette.java index 160ea719..d15000ad 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/theming/ColorPalette.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ColorPalette.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.util.theming; +package com.github.dfa.diaspora_android.ui.theme; import android.content.Context; import android.graphics.Color; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/CustomFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/CustomFragment.java similarity index 96% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/CustomFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/CustomFragment.java index 4283acf6..8f7f26ae 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/CustomFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/CustomFragment.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.ui.theme; import android.os.Bundle; import android.support.v4.app.Fragment; @@ -30,7 +30,7 @@ import android.view.MenuInflater; public abstract class CustomFragment extends Fragment { - public static final String TAG = "com.github.dfa.diaspora_android.CustomFragment"; + public static final String TAG = "com.github.dfa.diaspora_android.ui.theme.CustomFragment"; /** * We have an optionsMenu diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/theming/ThemeHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemeHelper.java similarity index 92% rename from app/src/main/java/com/github/dfa/diaspora_android/util/theming/ThemeHelper.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemeHelper.java index 3f5737f0..64030905 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/theming/ThemeHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemeHelper.java @@ -17,7 +17,7 @@ If not, see . This class is inspired by org.horasapps.LeafPic */ -package com.github.dfa.diaspora_android.util.theming; +package com.github.dfa.diaspora_android.ui.theme; import android.content.res.ColorStateList; import android.graphics.Color; @@ -37,7 +37,7 @@ import android.widget.RadioGroup; import android.widget.TextView; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.data.AppSettings; +import com.github.dfa.diaspora_android.util.AppSettings; /** * Singleton that can be used to color views @@ -68,7 +68,7 @@ public class ThemeHelper { public static void updateEditTextColor(EditText editText) { if (editText != null) { editText.setHighlightColor(getInstance().appSettings.getAccentColor()); - if(Build.VERSION.SDK_INT >= 21) { + if (Build.VERSION.SDK_INT >= 21) { editText.getBackground().mutate().setColorFilter(getAccentColor(), PorterDuff.Mode.SRC_ATOP); } } @@ -97,7 +97,7 @@ public class ThemeHelper { } public static void updateTextViewTextColor(TextView textView) { - if(textView != null) { + if (textView != null) { textView.setTextColor(getInstance().appSettings.getAccentColor()); } } @@ -139,12 +139,12 @@ public class ThemeHelper { } public static void updateRadioGroupColor(RadioGroup radioGroup) { - if(radioGroup != null && Build.VERSION.SDK_INT >= 21) { + if (radioGroup != null && Build.VERSION.SDK_INT >= 21) { for (int i = 0; i < radioGroup.getChildCount(); ++i) { RadioButton btn = ((RadioButton) radioGroup.getChildAt(i)); btn.setButtonTintList(new ColorStateList( - new int[][]{ new int[]{-android.R.attr.state_enabled}, new int[]{android.R.attr.state_enabled} }, - new int[] { Color.BLACK ,ThemeHelper.getAccentColor() })); + new int[][]{new int[]{-android.R.attr.state_enabled}, new int[]{android.R.attr.state_enabled}}, + new int[]{Color.BLACK, ThemeHelper.getAccentColor()})); btn.invalidate(); } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/Themeable.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/Themeable.java similarity index 74% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/Themeable.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/Themeable.java index 8d8db6fe..61ab17fa 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/Themeable.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/Themeable.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.ui.theme; /** * Interface that allows setting Theme colors diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/ThemedActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java similarity index 93% rename from app/src/main/java/com/github/dfa/diaspora_android/activity/ThemedActivity.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java index aba3c1c0..c01236c4 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/ThemedActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.activity; +package com.github.dfa.diaspora_android.ui.theme; import android.annotation.TargetApi; import android.app.ActivityManager; @@ -26,8 +26,7 @@ import android.support.v7.app.AppCompatActivity; 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.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * Activity that supports color schemes diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedAppCompatDialogFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedAppCompatDialogFragment.java similarity index 77% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedAppCompatDialogFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedAppCompatDialogFragment.java index 632fad22..342026cb 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedAppCompatDialogFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedAppCompatDialogFragment.java @@ -1,11 +1,10 @@ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.ui.theme; import android.app.Dialog; import android.os.Bundle; import android.support.v7.app.AppCompatDialogFragment; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * Themed DialogFragment diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedCheckBoxPreference.java similarity index 85% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedCheckBoxPreference.java index 40f04946..8da3790a 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedCheckBoxPreference.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.ui.theme; import android.content.Context; import android.preference.CheckBoxPreference; @@ -7,9 +7,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; -import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * Created by vanitas on 24.10.16. @@ -17,14 +15,17 @@ import com.github.dfa.diaspora_android.util.theming.ThemeHelper; public class ThemedCheckBoxPreference extends CheckBoxPreference implements Themeable { protected View rootLayout; + @SuppressWarnings("unused") public ThemedCheckBoxPreference(Context context) { super(context); } + @SuppressWarnings("unused") public ThemedCheckBoxPreference(Context context, AttributeSet attrs) { super(context, attrs); } + @SuppressWarnings("unused") public ThemedCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedColorPickerPreference.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedColorPickerPreference.java similarity index 95% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedColorPickerPreference.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedColorPickerPreference.java index 9ec3efa0..fd5a29de 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedColorPickerPreference.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedColorPickerPreference.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.ui.theme; import android.content.Context; import android.graphics.PorterDuff; @@ -9,7 +9,7 @@ import android.view.View; import android.widget.ImageView; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.data.AppSettings; +import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.Helpers; /** diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedFragment.java similarity index 88% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedFragment.java index 96c034b0..db71a5f9 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedFragment.java @@ -16,11 +16,10 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.ui.theme; import com.github.dfa.diaspora_android.App; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * Fragment that supports color schemes diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedPreferenceCategory.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceCategory.java similarity index 86% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedPreferenceCategory.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceCategory.java index 4ec8cb04..ca9857e2 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedPreferenceCategory.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceCategory.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.ui.theme; import android.content.Context; import android.preference.PreferenceCategory; @@ -7,8 +7,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * PreferenceCategory with a colored title @@ -17,14 +16,17 @@ import com.github.dfa.diaspora_android.util.theming.ThemeHelper; public class ThemedPreferenceCategory extends PreferenceCategory implements Themeable { protected TextView titleTextView; + @SuppressWarnings("unused") public ThemedPreferenceCategory(Context context) { super(context); } + @SuppressWarnings("unused") public ThemedPreferenceCategory(Context context, AttributeSet attrs) { super(context, attrs); } + @SuppressWarnings("unused") public ThemedPreferenceCategory(Context context, AttributeSet attrs, int defStyle) { @@ -41,7 +43,7 @@ public class ThemedPreferenceCategory extends PreferenceCategory implements Them @Override public void setColors() { - if(titleTextView != null) { + if (titleTextView != null) { ThemeHelper.getInstance(new AppSettings(getContext())); ThemeHelper.updateTextViewTextColor(titleTextView); } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedPreferenceFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java similarity index 86% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedPreferenceFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java index dd348abb..aae5f0dc 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/ThemedPreferenceFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java @@ -1,4 +1,4 @@ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.ui.theme; import android.os.Build; import android.preference.Preference; @@ -7,8 +7,7 @@ import android.preference.PreferenceScreen; import android.view.Window; import com.github.dfa.diaspora_android.App; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * Created by vanitas on 24.10.16. @@ -16,6 +15,7 @@ import com.github.dfa.diaspora_android.util.theming.ThemeHelper; public abstract class ThemedPreferenceFragment extends PreferenceFragment { public abstract void updateViewColors(); + @Override public void onResume() { super.onResume(); @@ -24,7 +24,7 @@ public abstract class ThemedPreferenceFragment extends PreferenceFragment { @Override public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { - if(isAdded()) { + if (isAdded()) { App app = ((App) getActivity().getApplication()); AppSettings appSettings = app.getSettings(); if (Build.VERSION.SDK_INT >= 21) { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedVisibilityPreference.java similarity index 86% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java rename to app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedVisibilityPreference.java index ae1cb482..918b2641 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedVisibilityPreference.java @@ -1,12 +1,11 @@ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.ui.theme; import android.content.Context; import android.util.AttributeSet; import android.widget.CheckBox; import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; +import com.github.dfa.diaspora_android.util.AppSettings; /** * ThemedCheckBoxPreference with visibility icons instead of checkbox. TODO: Make more flexible? diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AppLog.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppLog.java index 178cd008..8f3df81b 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/AppLog.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppLog.java @@ -18,6 +18,12 @@ */ package com.github.dfa.diaspora_android.util; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Observable; +import java.util.Observer; + /** * Created by gregor on 18.09.16. */ @@ -86,4 +92,126 @@ public class AppLog { Log.v(getLogPrefix(source), _text); } } + + + /** + * Class that saves logs eg. for later debugging. + * TODO: Differentiate log types (error/debug/info...) + */ + public static class Log extends Observable { + public static final int MAX_BUFFER_SIZE = 100; + + public static Log instance; + private AppSettings appSettings; + private SimpleDateFormat dateFormat; + private ArrayList logBuffer; + private ArrayList observers; + + private Log() { + this(null); + } + + private Log(AppSettings appSettings) { + if (appSettings != null) { + //TODO: Store/Restore logBuffer between app starts + logBuffer = new ArrayList<>(); + } else { + logBuffer = new ArrayList<>(); + } + dateFormat = new SimpleDateFormat("HH:mm:ss"); + observers = new ArrayList<>(); + } + + public static Log getInstance() { + if (instance == null) instance = new Log(); + return instance; + } + + public static Log getInstance(AppSettings appSettings) { + if (instance == null) instance = new Log(appSettings); + return instance; + } + + private static String time() { + return getInstance().dateFormat.format(new Date()) + ": "; + } + + public static void d(String tag, String msg) { + Log l = getInstance(); + android.util.Log.d(tag, msg); + l.addLogEntry(msg); + l.notifyLogBufferChanged(); + } + + public static void e(String tag, String msg) { + Log l = getInstance(); + android.util.Log.e(tag, msg); + l.addLogEntry(msg); + l.notifyLogBufferChanged(); + } + + public static void i(String tag, String msg) { + Log l = getInstance(); + android.util.Log.i(tag, msg); + l.addLogEntry(msg); + l.notifyLogBufferChanged(); + } + + public static void v(String tag, String msg) { + Log l = getInstance(); + android.util.Log.v(tag, msg); + l.addLogEntry(msg); + l.notifyLogBufferChanged(); + } + + public static void w(String tag, String msg) { + Log l = getInstance(); + android.util.Log.w(tag, msg); + l.addLogEntry(msg); + l.notifyLogBufferChanged(); + } + + public static void wtf(String tag, String msg) { + Log l = getInstance(); + android.util.Log.wtf(tag, msg); + l.addLogEntry(msg); + l.notifyLogBufferChanged(); + } + + public synchronized static ArrayList getLogBufferArray() { + return getInstance().logBuffer; + } + + public synchronized static String getLogBuffer() { + String out = ""; + for (String s : getInstance().logBuffer) { + out = out + s + "\n"; + } + return out; + } + + private void notifyLogBufferChanged() { + if (observers == null) return; + for (Observer o : observers) { + if (o != null) { + o.update(this, null); + } + } + } + + private synchronized void addLogEntry(String msg) { + logBuffer.add(time() + msg); + while (logBuffer.size() > MAX_BUFFER_SIZE) { + logBuffer.remove(0); + } + } + + public static void addLogObserver(Observer observer) { + getInstance().observers.add(observer); + } + + public static void removeLogObserver(Observer o) { + getInstance().observers.remove(o); + } + } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java similarity index 97% rename from app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java rename to app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java index f8b83da0..668ee668 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java @@ -12,7 +12,7 @@ along with the Diaspora for Android. If not, see . */ -package com.github.dfa.diaspora_android.data; +package com.github.dfa.diaspora_android.util; import android.annotation.SuppressLint; import android.content.Context; @@ -21,7 +21,8 @@ import android.content.SharedPreferences; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod; import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod.DiasporaPodUrl; -import com.github.dfa.diaspora_android.util.ProxyHandler; +import com.github.dfa.diaspora_android.data.DiasporaAspect; +import com.github.dfa.diaspora_android.web.ProxyHandler; import org.json.JSONException; import org.json.JSONObject; @@ -56,11 +57,11 @@ public class AppSettings { prefApp.edit().clear().apply(); } - public String getKey(int stringKeyRessourceId){ + public String getKey(int stringKeyRessourceId) { return context.getString(stringKeyRessourceId); } - public boolean isKeyEqual(String key, int stringKeyRessourceId){ + public boolean isKeyEqual(String key, int stringKeyRessourceId) { return key.equals(getKey(stringKeyRessourceId)); } @@ -195,15 +196,15 @@ public class AppSettings { return !getString(prefPod, R.string.pref_key__current_pod_0, "").equals(""); } - public void setPodAspects(PodAspect[] aspects) { + public void setPodAspects(DiasporaAspect[] aspects) { setStringArray(prefPod, R.string.pref_key__podprofile_aspects, aspects); } - public PodAspect[] getAspects() { + public DiasporaAspect[] getAspects() { String[] s = getStringArray(prefPod, R.string.pref_key__podprofile_aspects); - PodAspect[] aspects = new PodAspect[s.length]; + DiasporaAspect[] aspects = new DiasporaAspect[s.length]; for (int i = 0; i < aspects.length; i++) { - aspects[i] = new PodAspect(s[i]); + aspects[i] = new DiasporaAspect(s[i]); } return aspects; } 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 1377b2a6..10edd275 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 @@ -20,9 +20,8 @@ package com.github.dfa.diaspora_android.util; 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.DiasporaPod; -import com.github.dfa.diaspora_android.data.PodAspect; +import com.github.dfa.diaspora_android.data.DiasporaAspect; /** * Helper class that provides easy access to specific urls related to diaspora @@ -151,7 +150,7 @@ public class DiasporaUrlHelper { * @param aspectId ID of the aspect * @return https://(pod-domain.tld)//aspects?a_ids[]=aspectId */ - public String getAspectUrl(String aspectId) { + public String getAspectUrl(String aspectId) { return getPodUrl() + SUBURL_ASPECT + aspectId; } @@ -315,7 +314,7 @@ public class DiasporaUrlHelper { url = url.replace(getPodUrl() + "/aspects?a_ids[]=", "").split(",")[0]; try { int id = Integer.parseInt(url); - for (PodAspect aspect : app.getPodUserProfile().getAspects()) { + for (DiasporaAspect aspect : app.getDiasporaUserProfile().getAspects()) { if (aspect.id == id) { return aspect.name; } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java b/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java index 68b10dca..5db1e5d2 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java @@ -30,6 +30,7 @@ import android.support.design.widget.Snackbar; import android.view.View; import com.github.dfa.diaspora_android.R; +import com.github.dfa.diaspora_android.web.WebHelper; import java.io.BufferedReader; import java.io.File; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/Log.java b/app/src/main/java/com/github/dfa/diaspora_android/util/Log.java deleted file mode 100644 index 2cca9acf..00000000 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/Log.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - This file is part of the Diaspora for Android. - - Diaspora for Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Diaspora for Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with the Diaspora for Android. - - If not, see . - */ -package com.github.dfa.diaspora_android.util; - -import com.github.dfa.diaspora_android.data.AppSettings; - -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.Observable; -import java.util.Observer; - -/** - * Class that saves logs eg. for later debugging. - * TODO: Differentiate log types (error/debug/info...) - * Created by vanitas on 09.09.16. - */ -public class Log extends Observable { - public static final int MAX_BUFFER_SIZE = 100; - - public static Log instance; - private AppSettings appSettings; - private SimpleDateFormat dateFormat; - private ArrayList logBuffer; - private ArrayList observers; - - private Log() { - this(null); - } - - private Log(AppSettings appSettings) { - if (appSettings != null) { - //TODO: Store/Restore logBuffer between app starts - logBuffer = new ArrayList<>(); - } else { - logBuffer = new ArrayList<>(); - } - dateFormat = new SimpleDateFormat("HH:mm:ss"); - observers = new ArrayList<>(); - } - - public static Log getInstance() { - if (instance == null) instance = new Log(); - return instance; - } - - public static Log getInstance(AppSettings appSettings) { - if (instance == null) instance = new Log(appSettings); - return instance; - } - - private static String time() { - return getInstance().dateFormat.format(new Date()) + ": "; - } - - public static void d(String tag, String msg) { - Log l = getInstance(); - android.util.Log.d(tag, msg); - l.addLogEntry(msg); - l.notifyLogBufferChanged(); - } - - public static void e(String tag, String msg) { - Log l = getInstance(); - android.util.Log.e(tag, msg); - l.addLogEntry(msg); - l.notifyLogBufferChanged(); - } - - public static void i(String tag, String msg) { - Log l = getInstance(); - android.util.Log.i(tag, msg); - l.addLogEntry(msg); - l.notifyLogBufferChanged(); - } - - public static void v(String tag, String msg) { - Log l = getInstance(); - android.util.Log.v(tag, msg); - l.addLogEntry(msg); - l.notifyLogBufferChanged(); - } - - public static void w(String tag, String msg) { - Log l = getInstance(); - android.util.Log.w(tag, msg); - l.addLogEntry(msg); - l.notifyLogBufferChanged(); - } - - public static void wtf(String tag, String msg) { - Log l = getInstance(); - android.util.Log.wtf(tag, msg); - l.addLogEntry(msg); - l.notifyLogBufferChanged(); - } - - public synchronized static ArrayList getLogBufferArray() { - return getInstance().logBuffer; - } - - public synchronized static String getLogBuffer() { - String out = ""; - for (String s : getInstance().logBuffer) { - out = out + s + "\n"; - } - return out; - } - - private void notifyLogBufferChanged() { - if (observers == null) return; - for (Observer o : observers) { - if (o != null) { - o.update(this, null); - } - } - } - - private synchronized void addLogEntry(String msg) { - logBuffer.add(time() + msg); - while (logBuffer.size() > MAX_BUFFER_SIZE) { - logBuffer.remove(0); - } - } - - public static void addLogObserver(Observer observer) { - getInstance().observers.add(observer); - } - - public static void removeLogObserver(Observer o) { - getInstance().observers.remove(o); - } -} diff --git a/app/src/main/java/com/github/dfa/diaspora_android/fragment/BrowserFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java similarity index 96% rename from app/src/main/java/com/github/dfa/diaspora_android/fragment/BrowserFragment.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java index 7905bc6b..0460e428 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/fragment/BrowserFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.fragment; +package com.github.dfa.diaspora_android.web; import android.Manifest; import android.content.DialogInterface; @@ -40,13 +40,10 @@ import android.widget.ProgressBar; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; -import com.github.dfa.diaspora_android.ui.ContextMenuWebView; +import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; +import com.github.dfa.diaspora_android.ui.theme.ThemedFragment; import com.github.dfa.diaspora_android.util.AppLog; -import com.github.dfa.diaspora_android.util.ProxyHandler; -import com.github.dfa.diaspora_android.util.theming.ThemeHelper; -import com.github.dfa.diaspora_android.webview.CustomWebViewClient; -import com.github.dfa.diaspora_android.webview.ProgressBarWebChromeClient; +import com.github.dfa.diaspora_android.util.AppSettings; import java.io.File; import java.io.FileOutputStream; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ContextMenuWebView.java b/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java similarity index 99% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/ContextMenuWebView.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java index 6f7ba003..39f3d4bc 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/ContextMenuWebView.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.web; import android.Manifest; import android.app.Activity; @@ -39,7 +39,7 @@ import android.widget.Toast; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.task.ImageDownloadTask; +import com.github.dfa.diaspora_android.service.ImageDownloadTask; import java.io.File; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/webview/CustomWebViewClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java similarity index 98% rename from app/src/main/java/com/github/dfa/diaspora_android/webview/CustomWebViewClient.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java index beb85d19..20afcd07 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/webview/CustomWebViewClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.webview; +package com.github.dfa.diaspora_android.web; import android.content.Intent; import android.support.v4.content.LocalBroadcastManager; 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/web/DiasporaStreamWebChromeClient.java similarity index 95% rename from app/src/main/java/com/github/dfa/diaspora_android/webview/DiasporaStreamWebChromeClient.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/DiasporaStreamWebChromeClient.java index 759fc317..1438f447 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/webview/DiasporaStreamWebChromeClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/DiasporaStreamWebChromeClient.java @@ -16,13 +16,12 @@ If not, see . */ -package com.github.dfa.diaspora_android.webview; +package com.github.dfa.diaspora_android.web; import android.webkit.WebView; import android.widget.ProgressBar; import com.github.dfa.diaspora_android.util.AppLog; -import com.github.dfa.diaspora_android.util.WebHelper; /** * Created by vanitas on 26.09.16. diff --git a/app/src/main/java/com/github/dfa/diaspora_android/webview/FileUploadWebChromeClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/FileUploadWebChromeClient.java similarity index 97% rename from app/src/main/java/com/github/dfa/diaspora_android/webview/FileUploadWebChromeClient.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/FileUploadWebChromeClient.java index 5e714211..b1a6ce48 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/webview/FileUploadWebChromeClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/FileUploadWebChromeClient.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.webview; +package com.github.dfa.diaspora_android.web; import android.net.Uri; import android.webkit.ValueCallback; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/NestedWebView.java b/app/src/main/java/com/github/dfa/diaspora_android/web/NestedWebView.java similarity index 99% rename from app/src/main/java/com/github/dfa/diaspora_android/ui/NestedWebView.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/NestedWebView.java index 4f59a339..d714d757 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/NestedWebView.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/NestedWebView.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.github.dfa.diaspora_android.ui; +package com.github.dfa.diaspora_android.web; import android.content.Context; import android.support.v4.view.MotionEventCompat; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/webview/ProgressBarWebChromeClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/ProgressBarWebChromeClient.java similarity index 96% rename from app/src/main/java/com/github/dfa/diaspora_android/webview/ProgressBarWebChromeClient.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/ProgressBarWebChromeClient.java index ec5c7b41..cbfc68b6 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/webview/ProgressBarWebChromeClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/ProgressBarWebChromeClient.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.webview; +package com.github.dfa.diaspora_android.web; import android.view.View; import android.webkit.WebChromeClient; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/ProxyHandler.java b/app/src/main/java/com/github/dfa/diaspora_android/web/ProxyHandler.java similarity index 96% rename from app/src/main/java/com/github/dfa/diaspora_android/util/ProxyHandler.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/ProxyHandler.java index 160d36ad..8ec2aad4 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/ProxyHandler.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/ProxyHandler.java @@ -16,14 +16,15 @@ If not, see . */ -package com.github.dfa.diaspora_android.util; +package com.github.dfa.diaspora_android.web; import android.content.Context; import android.os.StrictMode; import android.webkit.WebView; import com.github.dfa.diaspora_android.activity.MainActivity; -import com.github.dfa.diaspora_android.data.AppSettings; +import com.github.dfa.diaspora_android.util.AppLog; +import com.github.dfa.diaspora_android.util.AppSettings; import java.util.ArrayList; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java similarity index 99% rename from app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java index 8d9dd44f..a82df182 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/WebHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/WebHelper.java @@ -17,7 +17,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.util; +package com.github.dfa.diaspora_android.web; import android.content.Context; import android.net.ConnectivityManager; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/BrowserFallback.java b/app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/BrowserFallback.java similarity index 95% rename from app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/BrowserFallback.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/BrowserFallback.java index 4e70f1c0..44623ccd 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/BrowserFallback.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/BrowserFallback.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.util.CustomTabHelpers; +package com.github.dfa.diaspora_android.web.custom_tab; import android.app.Activity; import android.content.Intent; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/CustomTabActivityHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/CustomTabActivityHelper.java similarity index 98% rename from app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/CustomTabActivityHelper.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/CustomTabActivityHelper.java index 0429b44b..3af91173 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/CustomTabActivityHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/CustomTabActivityHelper.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.util.CustomTabHelpers; +package com.github.dfa.diaspora_android.web.custom_tab; import android.app.Activity; import android.content.ComponentName; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/CustomTabsHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/CustomTabsHelper.java similarity index 98% rename from app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/CustomTabsHelper.java rename to app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/CustomTabsHelper.java index 1aa6713f..99d8cf10 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/CustomTabHelpers/CustomTabsHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/custom_tab/CustomTabsHelper.java @@ -16,7 +16,7 @@ If not, see . */ -package com.github.dfa.diaspora_android.util.CustomTabHelpers; +package com.github.dfa.diaspora_android.web.custom_tab; import android.content.Context; import android.content.Intent; diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png index 11f95124d64006c472554ab279b048bebd642be3..4e38e5c29aa4578e59c5d93fdadf1c03a2e3ceda 100644 GIT binary patch delta 1402 zcmV-=1%>*o8jK5&BYy=`NklUZulkI*1rib!ebK1FTjbSfG-)5@ zNljGHXwt~;5{eRAFW6#YLqwwn5eTv*5^O~=5G|G43Ph}yg;H^6w!7U+cW3s}q&fco zbW+&u&dk}K%god{$(L@nGkeZ_^Pm5E&RMb~Xh92F(EdklMSmoDM_WW~4@H%CLlGqg zh=(Fc1^()Q856qsUEI8;yDhAC;Ju5G5^~e>i1G+LWG`S8Ko~I^3M+m1oA}$lrDfS$ zS=u)p*!hb!K_@RuA*i?@ zDKe8?!Uy>IuSH9OejhK(QrMj>r%4580_X6>kTpRUlNDJCJJC}5*32PG8QfPVtO-h_ zq!C1BbAQ~l(<`j>$r{+MVQYf^nXJk*`@OALFXrmQs?93Zb-RDFCP>XoC1{koZpGT! zicJbh=Bi}ql1?^%mnRRupR&Am&natyvZb1BKlg1_$(#Fgr2p6y7m}#zZdjmW?WkjC zrtU#&fYW1Tvh{GDJo@28-L?Bpmn;d=%JT`j_kSIgyaA;A_@_qn%ItO3+BCVpJH;c2 z?Qou6vlUOKjy|*TZ4l?ceD@3%$dlkje|yH7AS8BqR3WS1R>|x8vgC(9u9MP;&I37i zDS~IG(LYS7)Hc9)rfN&jjVM>`|9^BuBU+{A_&Y}~YCNV{jE0~%OD9i#lBOnyCrU6K z?|<5&vJw=h@t_r!PWpZ-xIz#D16)RrTA`63ou!jApp4xjXwS(as|4vZ1kJE?ayN+i zt9!HL@CD5fdl|%_6+@R|11NGvf@XvhR7VzApY=f2_X5a53wP>DnRFe>lLy~R@p2Yt zgikRm+yi87*lTa9X@C(v`crE@NQv;Kb${VXng(c+TP0>U=$9uxnh;z!Q5Qew!L;#KQMstqwnV^bmhm>?jBOc#2L8i2tW2o?Sf0~@V>g;H40n;vmAb;v* z#+;Vx&gF)%I^p!tVN<_624v<+&SYXe&6R{1@04rzK;Ds@L+9%w@z*FU9fmYWzAGtL zUP*h*_c*00#?nyi8~*rc!HAWtazW4T$TYndlVn%Y z6zfAKrz-_D?g0q|B3mL4SJ*cn-*`G)bskxK=i#)5XFe|I+hnm`3|=NUvhu zoyJ^mJ5rxt`f{j9T`>__dKR^K;pK0#WJIZu2Pl*5sEAJ_bds5>8LK`#vv@(|@|RW} zJxpiVm5y9n{t_&p3YOsUSrQy9;-ufS5-bA_7Lv2?@QL}DoS5*PKP%T?x^u;+n^^{M z>{538m?ZgXJCrnX8g~Bl`9kNoxrf!uTQY@Nt6)=aur1u}6Bk@KSOEI;_Q3+~98Hn% z-O&`y(znYtCf5Xqo6!1DUH>j^`FI?-b`c+s6SSZOEoheQKVm}54FxeMB>(^b07*qo IM6N<$g7Z_eJOBUy delta 3370 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 AYybcN diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png index b356e40a1808b9fc9dc08e1ebcfe2c3174e2573d..375b47d7696e8a59bb3d65b8c31bb7aa27646dfd 100644 GIT binary patch delta 908 zcmV;719SYG5upc=BYy*ENklr3D31JlKO4 z4|)-$h~C!5-Vp+Uu>&2HY!rfsqbDWCHt8%?vD zWOjCvwjm2YD4Ffd@7wtvzi-B5YCMf+>7SOa@2e~}Ut5z^uz#Da!n0X2#=9sM^ z`7Cfv!$v4>6Mv~S`NExGb|)oZJxfUbUraCswvugNnZUu4=b2OGx?TY`T@+!n0{pwB z*N_1jU3J1}kvcIJfpj{(2=?(A!^Ms+a7k%5y5*IGIT~8%^aHg4L$4(s!5k~AVo~POPJf0$xu-vlRR-Mo5MN|`rz-?wAL9^+$_Vl|VLvHWm55^y@5hYAUJE3{ zL9B%>eIiUpD(?bjDTBq#%O#B#1Jfjp>&PTv4}T4Zm<=eKM)ef3LY%xC(IorzcLL^< z>ff>WZM-0|wwiV>QX&sbe?cjwBI%!zvtxZkMr#>&`+b~Ek=lH1T*aLG+ni=zKROc5 zZ8^zQuO{a;-#Ow6@fCA=woXHXV zJb#sd_2<;@94GIj6!L$m`5nT1p;G zeL0si*P^Lk@y9B4aj>=Gj~46VaJMdw*X!bfqefRunW|nf)x{-W-CVO$Ty#%rU3BBv ivbyMQJdMX>`U_b37y;_bw>1C&002ovP6b4+LSTZ@L9adl delta 2193 zcmV;C2yXYG2b>X*BYyw{XF*Lt006O%3;baP0000WV@Og>004R>004l5008;`004mK z004C`008P>0026e000+ooVrmw00006VoOIv0RI600RN!9r;`8x010qNS#tma#Hj!R z#Hj)8Ya7r200((VL_t(&-qo6Wa8y?v$3N%Xdv`alCM6+2LVw~yXj7o1Wdy=BBtV`1 z0i_-E59|2ojAOx3N2K)+HPMdRQb+s)9CRG9&e)Dr>mNE!smxR?RGJQtDLQF+q=2L( zix83~*}Ql6p5q_q?j}n%WOow`{mx`2v-h5JzrXi6zjFjxpyaVV$z*1l> zu*Unp3@8Hp-hYr$pbrQE=YUhdao{Y7e$WiGyh_(=PiM?UWb*Re>%T+cx^Dqkz!G2! zuo+kZ%<+Ct2QKgt@E-6t;C0{v;P$<}m!7wF&#VA;Q6&q%aU4Jb%YmnWPXh}xRYD4A zjAi}|{1$j0P#wQqORV?G^aUu}egxm#YJgJUtH5@T_!rbpfZz6tD`1@d^`+z0Fc;TTS72oP)x0mAagKL^}33*_Ut3;40&A}qr#8A&b_ z{9Zdq3xD8APx{#;KOSKt1TUjp+I~`zc#yEbf-k=wC%+Ek^LGk)JTA`zbx6x_y;%T% z*-9{}@;PS5=chu2Cq${obxeR@V><`|CeN>*?w6DXS0(=`JtIP_Hyowm4A_8)S*>e; zZA`zi^2mKYmd&>r&$+$F<>33HxN2Hc3&T~5r&kWu7)Z+t~-N`9a?&owi?(vUGi~F0BEJh+(&7o6j(D?!?yy} z2$=}tM}f+jnq8()u_L|TXC@XZJz@R9+}B9RD4O1>T!-EShv{8v{n?^jI}pzl1ir{*mQLm2xO|gxU1L}%qx&=yw}Gw59cMt#{}{~?}+9| zYlNd0BAjlIay_hwsmast6d19AUSNKvBc(8mw1!Zx!ey-4!$X>iP8|9WAW5OIpq07HX6SfA&Kc#W(BQbPM%=L zhCCJ&%9MdDQjB@L#?R*E{+Zb1oR^qJtDDVeA>fOvbEvCwCREUvg5RGU;moyI(i%u( zQs&p{b6HYiO-Be9I4Ln*;(zXpM=Myn$l=M_z=WD$3HbZDQFb35WY3#J^bG4HcTpPd znQQU&hFo$Sk?jh*8#p0>vzRV%+Rz$G3nV)?=2DU`lLA)?IN#~A_s9@~qndwSi16}> z;R%{n8a6NYv-JUgwtIy4fU^?l2M%RAS_-%xRz%&g4U7;F9?|T1bAOPFH(ay&)bP@Y zVUAslBxRepMdlUAY_rfIpx-KL_%=Wf@HkMI&PX9(a8z^bQk3wprh1-DLBQ+}UVLYm zKfF7VASeV3Mc{I`OI?+Zq8x#g5b9IxK0L^QQzJxG#+`&Kz_UP?RaE~p2+<7$f!cIu z5MDJs-4UZD6r*yEMStscm!BOTWH^#sl%#;`{fgm;=Ap$7r#_7F?7;yJw?=SvR&9`% zfCFe{#s-_N0@MHp$)YpiDiag7gll1yGQY>OPs0+2f3?TB7FOB1PCMpgsHJUJnYXFe zE(p;A{Dv$-%97AEpe7{`M$02n&7m_9I{ULGuYvs<*@AWx^M5kV3Z=lSz=o`*zx_B0 zJOOmJ?K0b#gdRpirvW;F?_7 zvjBkUyPK+X0Qey=INQuU4nG18pmoyOzytvR+FmHfL^Zzve!%QnBJ6S42ii5&(sPiX(cw;XV%Ts7zb{sO!RoM9%f z8jQ!?8@@|n-3~~;?6C>644IkB9?d_e=jcz<=9HE8N*>!we$8j`+WqNXx9P>~zmu-p zXy_NfK+B)#dTnRMT>b}Bal(iWK+R_W001R)MObuXVSjXGI%9HWVRU5xGB7bVEigGP zGB;E(Fgh_YIx;XTFfuwYFgb3EC;$KeC3HntbYx+4WjbwdWNBu305UK!HZ3qYEiyJ# zGBY|dIXX2lD=;!TFfg2WEeSaefwW^{L9a%BK_cXuvnZfkR6VQ^(GZ*pgw T?mQX*015yANkvXXu0mjf%&-9R diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png index 5055f6cff2e8deede6301483d5526d75f7777ddd..16dc7a29644ef968e6f940f2380f0b3639a36c3d 100644 GIT binary patch delta 2004 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 diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png index 2001d85829cb034f678ec047588a5fca36e94fe6..80bb0633bd6b1e70f74171f94dac3c6285b0470b 100644 GIT binary patch delta 3272 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 JM&2s&e*hhzXJh~X diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxxhdpi/ic_launcher.png index 0d77fa66d8f6661995cc5606d97689a83bb7fb51..bdde0721e303c1b6dd1576e5e254ffc059f29b9d 100644 GIT binary patch literal 4541 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 - diff --git a/app/src/main/res/layout/recycler_view__list_item.xml b/app/src/main/res/layout/recycler_list__list_item_with_fav.xml similarity index 100% rename from app/src/main/res/layout/recycler_view__list_item.xml rename to app/src/main/res/layout/recycler_list__list_item_with_fav.xml index 0fa5e8c2..e72fdbdf 100644 --- a/app/src/main/res/layout/recycler_view__list_item.xml +++ b/app/src/main/res/layout/recycler_list__list_item_with_fav.xml @@ -1,7 +1,7 @@ + android:title="@string/action_search_by_tags_or_persons" + app:showAsAction="always" /> + android:title="@string/action_compose_new_post" + app:showAsAction="always" /> + android:title="@string/action_go_to_top" + app:showAsAction="always" /> + app:showAsAction="never" /> diff --git a/app/src/main/res/menu/main__menu_top.xml b/app/src/main/res/menu/main__menu_top.xml index 71750e4f..d778143b 100644 --- a/app/src/main/res/menu/main__menu_top.xml +++ b/app/src/main/res/menu/main__menu_top.xml @@ -8,7 +8,7 @@ android:icon="@drawable/ic_notifications_white_48px__layer" android:orderInCategory="100" android:title="@string/notifications" - app:showAsAction="always"/> + app:showAsAction="always" /> - + + android:visible="false" /> diff --git a/app/src/main/res/menu/stream__menu_bottom.xml b/app/src/main/res/menu/stream__menu_bottom.xml index f93e1b19..c46b9203 100644 --- a/app/src/main/res/menu/stream__menu_bottom.xml +++ b/app/src/main/res/menu/stream__menu_bottom.xml @@ -4,13 +4,19 @@ + android:title="@string/action_share_dotdotdot" + app:showAsAction="always"> - - - + + + diff --git a/app/src/main/res/menu/stream__menu_top.xml b/app/src/main/res/menu/stream__menu_top.xml index 9d948098..fe316b97 100644 --- a/app/src/main/res/menu/stream__menu_top.xml +++ b/app/src/main/res/menu/stream__menu_top.xml @@ -5,8 +5,8 @@ + android:title="@string/reload" + app:showAsAction="always" /> \ No newline at end of file diff --git a/app/src/main/res/raw/podlist.json b/app/src/main/res/raw/podlist.json index 6d5ae23d..83fd7c89 100644 --- a/app/src/main/res/raw/podlist.json +++ b/app/src/main/res/raw/podlist.json @@ -1,7 +1,7 @@ { "pods": [ { - "active6": 12442, + "active6": 12476, "score": 20, "podUrls": [ {"host": "joindiaspora.com"}, @@ -16,7 +16,7 @@ "id": 38077 }, { - "active6": 7170, + "active6": 7155, "score": 20, "podUrls": [{"host": "pod.geraspora.de"}], "name": "Geraspora", @@ -24,7 +24,7 @@ "id": 24783 }, { - "active6": 3726, + "active6": 3723, "score": 20, "podUrls": [{"host": "diasp.org"}], "name": "diasporg*", @@ -32,7 +32,7 @@ "id": 12688 }, { - "active6": 10298, + "active6": 10321, "score": 20, "podUrls": [{"host": "framasphere.org"}], "name": "Framasphere", @@ -48,7 +48,7 @@ "id": 17343 }, { - "active6": 853, + "active6": 854, "score": 20, "podUrls": [{"host": "despora.de"}], "name": "Despora*", @@ -95,7 +95,7 @@ "id": 38327 }, { - "active6": 47, + "active6": 48, "score": 20, "podUrls": [{"host": "canfly.org"}], "name": "canfly.org", @@ -119,7 +119,7 @@ "id": 46568 }, { - "active6": 72, + "active6": 73, "score": 20, "podUrls": [{"host": "d.consumium.org"}], "name": "d.consumium.org", @@ -199,7 +199,7 @@ "id": 4343 }, { - "active6": 196, + "active6": 179, "score": 20, "podUrls": [{"host": "diasp.nl"}], "name": "diasp.nl", @@ -207,7 +207,7 @@ "id": 33262 }, { - "active6": 185, + "active6": 177, "score": 20, "podUrls": [{"host": "diaspod.de"}], "name": "diaspod.de", @@ -375,7 +375,7 @@ "id": 9863 }, { - "active6": 257, + "active6": 256, "score": 20, "podUrls": [{"host": "diaspora.permutationsofchaos.com"}], "name": "permutationsofchaos.com", @@ -479,7 +479,7 @@ "id": 39183 }, { - "active6": 36, + "active6": 37, "score": 20, "podUrls": [{"host": "diaspora.subsignal.org"}], "name": "subsignal.org", @@ -495,7 +495,7 @@ "id": 46672 }, { - "active6": 35, + "active6": 37, "score": 20, "podUrls": [{"host": "diaspora.u4u.org"}], "name": "u4u.org", @@ -535,7 +535,7 @@ "id": 27412 }, { - "active6": 1169, + "active6": 1168, "score": 20, "podUrls": [{"host": "diasporabr.com.br"}], "name": "diasporabr.com.br", @@ -543,7 +543,7 @@ "id": 18248 }, { - "active6": 365, + "active6": 364, "score": 20, "podUrls": [{"host": "diasporabrazil.org"}], "name": "diasporabrazil.org", @@ -559,8 +559,8 @@ "id": 27962 }, { - "active6": 0, - "score": 0, + "active6": 7, + "score": 20, "podUrls": [{"host": "diasporapr.tk"}], "name": "diasporapr.tk", "mainLangs": [], @@ -575,7 +575,7 @@ "id": 46740 }, { - "active6": 29, + "active6": 30, "score": 20, "podUrls": [{"host": "diasporing.ch"}], "name": "Diasporing.ch", @@ -639,7 +639,7 @@ "id": 41690 }, { - "active6": 168, + "active6": 169, "score": 20, "podUrls": [{"host": "flokk.no"}], "name": "flokk.no", @@ -671,7 +671,7 @@ "id": 13758 }, { - "active6": 73, + "active6": 72, "score": 20, "podUrls": [{"host": "idoru.pl"}], "name": "idoru.pl", @@ -727,7 +727,7 @@ "id": 32393 }, { - "active6": 140, + "active6": 139, "score": 20, "podUrls": [{"host": "liberdade.digital"}], "name": "liberdade.digital", @@ -775,7 +775,7 @@ "id": 16366 }, { - "active6": 616, + "active6": 614, "score": 20, "podUrls": [{"host": "mondiaspora.net"}], "name": "mondiaspora.net", @@ -959,7 +959,7 @@ "id": 36615 }, { - "active6": 57, + "active6": 56, "score": 20, "podUrls": [{"host": "pod.hashtagueule.fr"}], "name": "hashtagueule.fr", @@ -1031,7 +1031,7 @@ "id": 9248 }, { - "active6": 98, + "active6": 99, "score": 20, "podUrls": [{"host": "pod.nomorestars.com"}], "name": "nomorestars.com", @@ -1039,7 +1039,7 @@ "id": 31958 }, { - "active6": 404, + "active6": 405, "score": 20, "podUrls": [{"host": "pod.orkz.net"}], "name": "orkz.net", @@ -1048,7 +1048,7 @@ }, { "active6": 37, - "score": 20, + "score": -1, "podUrls": [{"host": "pod.ponk.pink"}], "name": "ponk.pink", "mainLangs": [], @@ -1063,8 +1063,8 @@ "id": 21338 }, { - "active6": 86, - "score": 20, + "active6": 85, + "score": 11, "podUrls": [{"host": "pod.psynet.su"}], "name": "psynet.su", "mainLangs": [], @@ -1135,7 +1135,7 @@ "id": 33181 }, { - "active6": 73, + "active6": 74, "score": 20, "podUrls": [{"host": "pod.tchncs.de"}], "name": "tchncs.de", @@ -1175,7 +1175,7 @@ "id": 16270 }, { - "active6": 386, + "active6": 392, "score": 20, "podUrls": [{"host": "poddery.com"}], "name": "poddery.com", @@ -1215,7 +1215,7 @@ "id": 41788 }, { - "active6": 100, + "active6": 101, "score": 20, "podUrls": [{"host": "ruhrspora.de"}], "name": "ruhrspora.de", @@ -1263,7 +1263,7 @@ "id": 37517 }, { - "active6": 84, + "active6": 85, "score": 20, "podUrls": [{"host": "social.elaon.de"}], "name": "elaon.de", @@ -1319,7 +1319,7 @@ "id": 29359 }, { - "active6": 39, + "active6": 37, "score": 20, "podUrls": [{"host": "sysad.org"}], "name": "sysad.org", @@ -1335,7 +1335,7 @@ "id": 5276 }, { - "active6": 3982, + "active6": 3964, "score": 20, "podUrls": [{"host": "therealtalk.org"}], "name": "therealtalk.org", @@ -1439,7 +1439,7 @@ "id": 33317 }, { - "active6": 11, + "active6": 14, "score": 20, "podUrls": [{"host": "diaspora.zone"}], "name": "zone", @@ -1447,7 +1447,7 @@ "id": 41976 }, { - "active6": 1, + "active6": 2, "score": 20, "podUrls": [{"host": "pod.userzap.de"}], "name": "userzap.de", @@ -1455,5 +1455,5 @@ "id": 12816 } ], - "timestamp": 1477430185319 + "timestamp": 1477491769316 } diff --git a/app/src/main/res/values-cs/strings-about.xml b/app/src/main/res/values-cs/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-cs/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-cs/strings-preferences.xml b/app/src/main/res/values-cs/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-cs/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-cs/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-el/strings-about.xml b/app/src/main/res/values-el/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-el/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-el/strings-preferences.xml b/app/src/main/res/values-el/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-el/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-el/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-hi/strings-about.xml b/app/src/main/res/values-hi/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-hi/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-hi/strings-preferences.xml b/app/src/main/res/values-hi/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-hi/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-hi/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-hu/strings-about.xml b/app/src/main/res/values-hu/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-hu/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-hu/strings-preferences.xml b/app/src/main/res/values-hu/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-hu/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-hu/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-nl/strings-about.xml b/app/src/main/res/values-nl/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-nl/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-nl/strings-preferences.xml b/app/src/main/res/values-nl/strings-preferences.xml deleted file mode 100644 index f5b9495e..00000000 --- a/app/src/main/res/values-nl/strings-preferences.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - Vormgeving - Netwerk - Pod-instellingen - - - Navigatie Slider - Item Zichtbaarheid - - - - Lettergrootte - - - Afbeeldingen laden - Afbeelding laden uitschakelen om mobiele data te besparen - - Proxy inschakelen - - - Persoonlijke instellingen - Uw lijst met contactpersonen beheren - Beheren van Hashtags - Toevoegen en verwijderen van de hashtags die u volgt - Account wijzigen - Lokale sessiegegevens wissen en schakel over naar een andere Diaspora pod/account - Dit zal alle cookies en sessiegegevens wissen. Wilt u echt uw account wijzigen? - Cache wissen - WebView-cache leegmaken - Boven- en onderkant werkbalken automatisch verbergen tijdens het scrollen - Werkbalken slim wegwerken - Gedeeld-via-aankondiging toevoegen - Een verwijzing naar dit app (\"gedeeld door…\") toevoegen aan gedeelde teksten - - - - diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml deleted file mode 100644 index b27eec67..00000000 --- a/app/src/main/res/values-nl/strings.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - *[gedeeld door #DiasporaForAndroid]* - - Opnieuw Laden - Ongelezen bericht. Wilt u het lezen? - - Instellingen - Meldingen - Gesprekken - Stream - Profiel - Aspecten - Activiteiten - Leuk gevonden - Gereageerd - Vermeldingen - Openbaar - Zoeken - - - Selecteer Pod - Voer pod domein - Bevestigen pod url - Opmerking: De podlijst is gevuld met beveiligde pods vermeld op https://podupti.me. U kunt in het bewerk veld elke pod invullen die niet in de lijst staat. - Voer een geldige domeinnaam in - Fout: Kan niet de podlijst ophalen! - Sorry, u moet verbinding met internet hebben om verder te gaan - Bevestiging - Wilt u echt \nhttps://%1$s\n als uw Diaspora pod gebruiken? - Wilt u afsluiten? - - Gevolgde Tags - Publieke activiteiten - Link delen als tekst - Screenshot van de webpagina delen - Neem screenshot van de webpagina - Afbeelding opslaan - Screenshot oplaan als: - Link adres gekopieerd… - Nieuw Bericht - Terug naar boven - Zoeken op tags of personen - App afsluiten - Desktop weergave in-/uitschakelen - Delen… - viaTags - via mensen - Voeg een naam toe - Deel adreslink - Afbeelding opslaan - Deel afbeelding - Geopend in externe browser… - Link-adres kopiëren naar Klembord - - Waarschuwing: Kan niet netwerk proxy instellen… - Niet in staat om afbeelding te laden - Alle tags - - Toestemming geweigerd. - Toestemming verleend. Probeer het opnieuw. - diff --git a/app/src/main/res/values-no/strings-about.xml b/app/src/main/res/values-no/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-no/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-no/strings-preferences.xml b/app/src/main/res/values-no/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-no/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-no/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-pt/strings-about.xml b/app/src/main/res/values-pt/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-pt/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-pt/strings-preferences.xml b/app/src/main/res/values-pt/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-pt/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-pt/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-sv/strings-about.xml b/app/src/main/res/values-sv/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-sv/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-sv/strings-preferences.xml b/app/src/main/res/values-sv/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-sv/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-sv/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values-tr/strings-about.xml b/app/src/main/res/values-tr/strings-about.xml deleted file mode 100644 index 54191dc5..00000000 --- a/app/src/main/res/values-tr/strings-about.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values-tr/strings-preferences.xml b/app/src/main/res/values-tr/strings-preferences.xml deleted file mode 100644 index 7be06570..00000000 --- a/app/src/main/res/values-tr/strings-preferences.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml deleted file mode 100644 index 69332975..00000000 --- a/app/src/main/res/values-tr/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/values/color.xml b/app/src/main/res/values/color.xml index 7f16c9e6..14025f63 100644 --- a/app/src/main/res/values/color.xml +++ b/app/src/main/res/values/color.xml @@ -17,9 +17,12 @@ #ffffff #000000 + #eeeeee + #c4000000 + @color/md_grey_200 - - + #f44336 #e91e63 #9c27b0 @@ -37,7 +40,14 @@ #9e9e9e #000000 - + #000000 #8A000000 @@ -133,7 +143,6 @@ #00B8D4 - #FFCCBC #FFAB91 #FF8A65 @@ -342,6 +351,4 @@ #FFFF00 #FFEA00 #FFD600 - - #c4000000 \ No newline at end of file diff --git a/app/src/main/res/xml/preferences__master.xml b/app/src/main/res/xml/preferences__master.xml index c6354445..b5f0caca 100644 --- a/app/src/main/res/xml/preferences__master.xml +++ b/app/src/main/res/xml/preferences__master.xml @@ -1,7 +1,7 @@ - @@ -23,34 +23,34 @@ android:summary="%s" android:title="@string/pref_title__font_size"/> - - - - - + - - + - - - + - @@ -106,5 +106,5 @@ android:summary="@string/pref_desc__sub_logging" android:title="@string/pref_title__sub_logging" /> - + \ No newline at end of file diff --git a/app/src/main/res/xml/preferences__sub_debugging.xml b/app/src/main/res/xml/preferences__sub_debugging.xml index 91145231..17ca7241 100644 --- a/app/src/main/res/xml/preferences__sub_debugging.xml +++ b/app/src/main/res/xml/preferences__sub_debugging.xml @@ -1,16 +1,16 @@ - - - - + \ No newline at end of file diff --git a/app/src/main/res/xml/preferences__sub_navslider_vis.xml b/app/src/main/res/xml/preferences__sub_navslider_vis.xml index 5a8395b3..0579a6be 100644 --- a/app/src/main/res/xml/preferences__sub_navslider_vis.xml +++ b/app/src/main/res/xml/preferences__sub_navslider_vis.xml @@ -1,54 +1,54 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/xml/preferences__sub_proxy.xml b/app/src/main/res/xml/preferences__sub_proxy.xml index 72933d28..ab7b01da 100644 --- a/app/src/main/res/xml/preferences__sub_proxy.xml +++ b/app/src/main/res/xml/preferences__sub_proxy.xml @@ -1,9 +1,9 @@ - - - + diff --git a/app/src/main/res/xml/preferences__sub_themes.xml b/app/src/main/res/xml/preferences__sub_themes.xml index 88e05d59..a4bca2cf 100644 --- a/app/src/main/res/xml/preferences__sub_themes.xml +++ b/app/src/main/res/xml/preferences__sub_themes.xml @@ -1,18 +1,18 @@ - - - - + \ No newline at end of file diff --git a/crowdin.yaml b/crowdin.yaml index e0c205fa..8f50437b 100644 --- a/crowdin.yaml +++ b/crowdin.yaml @@ -4,22 +4,22 @@ files: translation: '/app/src/main/res/values-%android_code%/%original_file_name%' languages_mapping: android_code: - sv-SE: sv - es-ES: es - ml-IN: ml - pt-PT: pt - "no": 'no' - de: de - tr: tr - ca: ca - ru: ru - pl: pl - nl: nl - ja: ja - it: it - hu: hu - hi: hi - fr: fr - el: el - cs: cs - kn: kn + ml-IN: ml # Malayalam + sv-SE: sv # Swedish + es-ES: es # Espanol + de: de # German + ru: ru # Russian + pl: pl # Polish + ja: ja # Japanese + it: it # Italian + fr: fr # French + kn: kn # Kannada (Asian) +# hu: hu # Hungarian +# hi: hi # Hindi +# nl: nl # Dutch +# el: el # Greel +# cs: cs # Czeck +# "no": 'no' # Norwegian +# tr: tr # Turkish +# ca: ca # Catalan +# pt-PT: pt # Portugese