1
0
Fork 0
mirror of https://github.com/gsantner/dandelion synced 2025-09-14 20:59:42 +02:00
This commit is contained in:
vanitasvitae 2016-11-02 19:31:28 +00:00 committed by GitHub
commit 6bb8367f67
24 changed files with 393 additions and 154 deletions

View file

@ -44,9 +44,11 @@ dependencies {
// Android standard libs
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.1.0' //Don't update. Broken up to 24.2.1
compile 'com.android.support:design:24.1.0' //Don't update. Broken up to 25.0.0
compile 'com.android.support:support-v4:24.2.1'
compile "com.android.support:customtabs:24.2.1"
compile 'com.android.support:customtabs:24.2.1'
compile 'com.android.support:cardview-v7:24.2.1'
// More libraries
compile 'com.jakewharton:butterknife:8.0.1'

View file

@ -21,8 +21,11 @@ package com.github.dfa.diaspora_android.activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.PorterDuff;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
@ -37,6 +40,7 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@ -45,6 +49,7 @@ import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.listener.IntellihideToolbarActivityListener;
import com.github.dfa.diaspora_android.ui.HtmlTextView;
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.ui.theme.ThemedFragment;
@ -142,15 +147,33 @@ public class AboutActivity extends ThemedActivity
/**
* Fragment that shows general information about the app
*/
public static class AboutFragment extends ThemedFragment {
public static class AboutFragment extends ThemedFragment implements View.OnClickListener {
public static final String TAG = "com.github.dfa.diaspora_android.AboutActivity.AboutFragment";
@BindView(R.id.fragment_about__about_text)
TextView aboutText;
@BindView(R.id.fragment_about__markdown_button)
protected Button btnMarkdown;
@BindView(R.id.fragment_about__translate_button)
protected Button btnTranslate;
@BindView(R.id.fragment_about__issue_tracker_button)
protected Button btnIssueTracker;
@BindView(R.id.fragment_about__source_code_button)
protected Button btnSourceCode;
@BindView(R.id.fragment_about__spread_the_word_button)
protected Button btnSpreadTheWord;
@BindView(R.id.fragment_about__app_version)
TextView appVersion;
protected TextView txtAppVersion;
@BindView(R.id.fragment_about__app_codename)
protected TextView txtAppCodename;
@BindView(R.id.fragment_about__spread_the_word)
protected HtmlTextView txtSpreadTheWord;
public AboutFragment() {
}
@ -163,18 +186,31 @@ public class AboutActivity extends ThemedActivity
if (isAdded()) {
try {
PackageInfo pInfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
appVersion.setText(getString(R.string.fragment_debug__app_version, pInfo.versionName + " (" + pInfo.versionCode + ")"));
txtAppVersion.setText(getString(R.string.fragment_debug__app_version, pInfo.versionName + " (" + pInfo.versionCode + ")"));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
txtAppCodename.setText(getString(R.string.fragment_debug__app_codename, "Alter Falter"));
btnIssueTracker.setOnClickListener(this);
btnMarkdown.setOnClickListener(this);
btnSourceCode.setOnClickListener(this);
btnSpreadTheWord.setOnClickListener(this);
btnTranslate.setOnClickListener(this);
return rootView;
}
@Override
protected void applyColorToViews() {
ThemeHelper.updateTextViewLinkColor(aboutText);
ThemeHelper.getInstance(getAppSettings());
int colorBtn = ThemeHelper.getAccentColor();
ThemeHelper.updateButtonColor(btnIssueTracker, colorBtn);
ThemeHelper.updateButtonColor(btnMarkdown, colorBtn);
ThemeHelper.updateButtonColor(btnSourceCode, colorBtn);
ThemeHelper.updateButtonColor(btnSpreadTheWord, colorBtn);
ThemeHelper.updateButtonColor(btnTranslate, colorBtn);
ThemeHelper.updateTextViewLinkColor(txtSpreadTheWord);
}
@Override
@ -191,6 +227,42 @@ public class AboutActivity extends ThemedActivity
public boolean onBackPressed() {
return false;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.fragment_about__markdown_button: {
openLink(getString(R.string.fragment_about__about_markdown_link));
break;
}
case R.id.fragment_about__translate_button: {
openLink(getString(R.string.fragment_about__translations_link));
break;
}
case R.id.fragment_about__issue_tracker_button: {
openLink(getString(R.string.fragment_about__github_issue_link));
break;
}
case R.id.fragment_about__source_code_button: {
openLink(getString(R.string.fragment_about__github_repo_link));
break;
}
case R.id.fragment_about__spread_the_word_button: {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.app_name));
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, getString(R.string.fragment_about__share_app_text, getString(R.string.fragment_about__fdroid_link)));
startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.action_share_dotdotdot)));
break;
}
}
}
public void openLink(String address) {
Intent openBrowserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(address));
openBrowserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(openBrowserIntent);
}
}
/**
@ -216,6 +288,7 @@ public class AboutActivity extends ThemedActivity
View rootView = inflater.inflate(R.layout.about__fragment_license, container, false);
ButterKnife.bind(this, rootView);
final Context context = rootView.getContext();
ThemeHelper.getInstance(getAppSettings());
accentColor = Helpers.colorToHex(ThemeHelper.getAccentColor());
textLicenseBox.setTextFormatted(getString(R.string.fragment_license__license_content,
@ -231,9 +304,8 @@ public class AboutActivity extends ThemedActivity
}
public String getContributorsHtml(Context context) {
String text = Helpers.readTextfileFromRawRessource(context, R.raw.contributors,
return Helpers.readTextfileFromRawRessource(context, R.raw.contributors,
"<font color='" + accentColor + "'><b>*</b></font> ", "<br>");
return text;
}
public String getMaintainersHtml(Context context) {
@ -245,9 +317,8 @@ public class AboutActivity extends ThemedActivity
}
public String getLicenseHtml(Context context) {
String text = Helpers.readTextfileFromRawRessource(context, R.raw.license,
return Helpers.readTextfileFromRawRessource(context, R.raw.license,
"", "").replace("\n\n", "<br><br>");
return text;
}
public String getLicense3dPartyHtml(Context context) {
@ -278,6 +349,37 @@ public class AboutActivity extends ThemedActivity
}
}
public static class ChangelogFragment extends CustomFragment {
public static final String TAG = "com.github.dfa.diaspora_android.AboutActivity.ChangelogFragment";
@BindView(R.id.fragment_changelog__content)
protected TextView textChangelogContent;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.about__fragment_changelog, container, false);
ButterKnife.bind(this, rootView);
final Context context = rootView.getContext();
textChangelogContent.setText(Helpers.readTextfileFromRawRessource(context, R.raw.changelog, "", ""));
return rootView;
}
@Override
public String getFragmentTag() {
return TAG;
}
@Override
public void onCreateBottomOptionsMenu(Menu menu, MenuInflater inflater) {
/* Nothing to do */
}
@Override
public boolean onBackPressed() {
return false;
}
}
/**
* Fragment that shows debug information like app version, pod version...
*/
@ -362,8 +464,17 @@ public class AboutActivity extends ThemedActivity
@Override
public void update(Observable observable, Object o) {
if (logBox != null) {
logBox.setText(AppLog.Log.getLogBuffer());
updateLog();
}
private synchronized void updateLog() {
if (isAdded() && logBox != null) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
logBox.setText(AppLog.Log.getLogBuffer());
}
});
}
}
}
@ -374,7 +485,7 @@ public class AboutActivity extends ThemedActivity
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@ -385,6 +496,8 @@ public class AboutActivity extends ThemedActivity
return new AboutFragment();
case 1: //License
return new LicenseFragment();
case 2: //Changelog
return new ChangelogFragment();
case 3: //Debug
default:
return new DebugFragment();
@ -393,8 +506,8 @@ public class AboutActivity extends ThemedActivity
@Override
public int getCount() {
// Show 3 total pages.
return 3;
// Show 4 total pages.
return 4;
}
@Override
@ -405,6 +518,8 @@ public class AboutActivity extends ThemedActivity
case 1:
return getString(R.string.about_activity__title_about_license);
case 2:
return getString(R.string.fragment_changelog__changelog);
case 3:
return getString(R.string.about_activity__title_debug_info);
}
return null;

View file

@ -1111,6 +1111,8 @@ public class MainActivity extends ThemedActivity
ThemeHelper.updateActionMenuViewColor(toolbarBottom);
navDrawerLayout.setBackgroundColor(appSettings.getPrimaryColor());
navProfilePictureArea.setBackgroundColor(appSettings.getPrimaryColor());
navheaderTitle.setTextColor(ThemeHelper.getTextColorFromBackgroundColor(ThemeHelper.getPrimaryColor()));
navheaderDescription.setTextColor(ThemeHelper.getTextColorFromBackgroundColor(ThemeHelper.getPrimaryColor()));
}
@Override

View file

@ -307,11 +307,13 @@ public class SettingsActivity extends ThemedActivity {
shade.setColors(ColorPalette.getColors(context, current[0]));
shade.setSelectedColor(current[1]);
titleBackground.setBackgroundColor(shade.getColor());
title.setTextColor(ThemeHelper.getTextColorFromBackgroundColor(shade.getColor()));
base.setOnColorChangedListener(new OnColorChangedListener() {
@Override
public void onColorChanged(int i) {
shade.setColors(ColorPalette.getColors(context, i));
titleBackground.setBackgroundColor(i);
title.setTextColor(ThemeHelper.getTextColorFromBackgroundColor(i));
if (i == current[0]) {
shade.setSelectedColor(current[1]);
titleBackground.setBackgroundColor(shade.getColor());
@ -324,6 +326,7 @@ public class SettingsActivity extends ThemedActivity {
@Override
public void onColorChanged(int i) {
titleBackground.setBackgroundColor(i);
title.setTextColor(ThemeHelper.getTextColorFromBackgroundColor(i));
}
});

View file

@ -54,7 +54,7 @@ public class BadgeDrawable extends Drawable {
badgeBackground.setAntiAlias(true);
badgeBackground.setStyle(Paint.Style.FILL);
badgeStroke = new Paint();
badgeStroke.setColor(ContextCompat.getColor(context.getApplicationContext(), R.color.colorPrimaryDark));
badgeStroke.setColor(ContextCompat.getColor(context.getApplicationContext(), R.color.color_primary_dark));
badgeStroke.setAntiAlias(true);
badgeStroke.setStyle(Paint.Style.FILL);

View file

@ -29,6 +29,7 @@ import android.support.v4.widget.CompoundButtonCompat;
import android.support.v7.widget.ActionMenuView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ProgressBar;
@ -84,8 +85,13 @@ public class ThemeHelper {
public static void updateTabLayoutColor(TabLayout tabLayout) {
if (tabLayout != null) {
tabLayout.setBackgroundColor(getInstance().appSettings.getPrimaryColor());
tabLayout.setSelectedTabIndicatorColor(getInstance().appSettings.getAccentColor());
tabLayout.setBackgroundColor(getPrimaryColor());
tabLayout.setSelectedTabIndicatorColor(getAccentColor());
int selectedColor = getTextColorFromBackgroundColor(getPrimaryColor());
int normalColor = selectedColor == Color.WHITE ?
tabLayout.getContext().getResources().getColor(R.color.md_grey_300) :
tabLayout.getContext().getResources().getColor(R.color.md_grey_700);
tabLayout.setTabTextColors(normalColor, selectedColor);
}
}
@ -105,6 +111,7 @@ public class ThemeHelper {
public static void updateToolbarColor(Toolbar toolbar) {
if (toolbar != null) {
toolbar.setBackgroundColor(getInstance().appSettings.getPrimaryColor());
toolbar.setTitleTextColor(getTextColorFromBackgroundColor(getInstance().appSettings.getPrimaryColor()));
}
}
@ -150,7 +157,23 @@ public class ThemeHelper {
}
}
public static void updateButtonColor(Button button, int color) {
if(button != null) {
button.getBackground().setColorFilter(color, PorterDuff.Mode.MULTIPLY);
button.setTextColor(getTextColorFromBackgroundColor(color));
}
}
public static int getNeutralGreyColor() {
return ContextCompat.getColor(getInstance().appSettings.getApplicationContext(), R.color.md_grey_800);
}
public static int getTextColorFromBackgroundColor(int backgroundColor) {
int med = (Color.red(backgroundColor) + Color.green(backgroundColor) + Color.blue(backgroundColor)) / 3;
return med < 128 ? Color.WHITE : Color.BLACK;
}
public static boolean darkDrawables() {
return getTextColorFromBackgroundColor(getInstance().appSettings.getPrimaryColor()) == Color.BLACK;
}
}

View file

@ -59,37 +59,37 @@ public class AppLog {
*/
public static void v(Object source, String _text) {
if (isLoggingEnabled()) {
Log.v(getLogPrefix(source), _text);
Log.v(source != null? getLogPrefix(source) : "null", _text);
}
}
public static void i(Object source, String _text) {
if (isLoggingEnabled()) {
Log.i(getLogPrefix(source), _text);
Log.i(source != null? getLogPrefix(source) : "null", _text);
}
}
public static void d(Object source, String _text) {
if (isLoggingEnabled()) {
Log.d(getLogPrefix(source), _text);
Log.d(source != null? getLogPrefix(source) : "null", _text);
}
}
public static void e(Object source, String _text) {
if (isLoggingEnabled()) {
Log.e(getLogPrefix(source), _text);
Log.e(source != null? getLogPrefix(source) : "null", _text);
}
}
public static void w(Object source, String _text) {
if (isLoggingEnabled()) {
Log.w(getLogPrefix(source), _text);
Log.w(source != null? getLogPrefix(source) : "null", _text);
}
}
public static void spam(Object source, String _text) {
if (isLoggingEnabled() && isLoggingSpamEnabled()) {
Log.v(getLogPrefix(source), _text);
Log.v(source != null? getLogPrefix(source) : "null", _text);
}
}

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<!-- This is a workaround for webview crashes: https://bugs.chromium.org/p/chromium/issues/detail?id=521753 -->
<path
android:fillColor="#000000"
android:pathData="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8
4v2h16v-2c0-2.66-5.33-4-8-4z" />
<path
android:pathData="M0 0h24v24H0z" />
</vector>

View file

@ -31,7 +31,8 @@
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
app:tabMode="scrollable"/>
</LinearLayout>
</android.support.design.widget.AppBarLayout>

View file

@ -1,10 +1,11 @@
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
tools:context="com.github.dfa.diaspora_android.activity.AboutActivity$AboutFragment">
<LinearLayout
@ -12,34 +13,140 @@
android:layout_height="match_parent"
android:orientation="vertical">
<!--Vertical padding-->
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="@dimen/activity_vertical_margin" />
<TextView
android:id="@+id/fragment_about__app_name"
style="@android:style/TextAppearance.DeviceDefault.Large"
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/diaspora_for_android"
android:textAlignment="center" />
android:layout_marginTop="@dimen/card_view__margin__top_bottom_double"
android:layout_marginBottom="@dimen/card_view__margin__top_bottom"
android:layout_marginStart="@dimen/card_view__margin__start_end"
android:layout_marginEnd="@dimen/card_view__margin__start_end"
card_view:cardElevation="@dimen/card_view__elevation"
card_view:cardCornerRadius="@dimen/card_view__corner_radius">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="@dimen/activity_horizontal_margin_half">
<TextView
android:id="@+id/fragment_about__app_version"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/fragment_about__app_name"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/diaspora_for_android"/>
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="16dp" />
<TextView
android:id="@+id/fragment_about__app_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fragment_debug__app_version"/>
<com.github.dfa.diaspora_android.ui.HtmlTextView
android:id="@+id/fragment_about__about_text"
style="@android:style/TextAppearance.DeviceDefault.Small"
<TextView
android:id="@+id/fragment_about__app_codename"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fragment_debug__app_codename"
android:layout_marginBottom="16dp"/>
<TextView
android:id="@+id/fragment_about__about_text"
android:textAppearance="@style/TextAppearance.AppCompat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fragment_about__about_the_app"
android:layout_marginBottom="16dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fragment_about__about_markdown"
android:textAppearance="@style/TextAppearance.AppCompat" />
<Button
android:id="@+id/fragment_about__markdown_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="5dp"
android:text="@string/fragment_about__learn_more"/>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:linksClickable="true"
android:text="@string/fragment_about__about_content" />
android:layout_marginTop="@dimen/card_view__margin__top_bottom"
android:layout_marginBottom="@dimen/card_view__margin__top_bottom_double"
android:layout_marginStart="@dimen/card_view__margin__start_end"
android:layout_marginEnd="@dimen/card_view__margin__start_end"
card_view:cardElevation="@dimen/card_view__elevation"
card_view:cardCornerRadius="@dimen/card_view__corner_radius">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="@dimen/activity_horizontal_margin_half">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:text="@string/fragment_about__contribute"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat"
android:text="@string/fragment_about__about_development"/>
<Button
android:id="@+id/fragment_about__source_code_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/fragment_about__about_source_at_github"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat"
android:text="@string/fragment_about__about_issues"/>
<Button
android:id="@+id/fragment_about__issue_tracker_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/fragment_about__issue_tracker"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat"
android:text="@string/fragment_about__missing_translations"/>
<Button
android:id="@+id/fragment_about__translate_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/fragment_about__translations"
android:layout_marginBottom="8dp"/>
<com.github.dfa.diaspora_android.ui.HtmlTextView
android:id="@+id/fragment_about__spread_the_word"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat"
android:text="@string/fragment_about__tell_your_friends"
android:linksClickable="true"/>
<Button
android:id="@+id/fragment_about__spread_the_word_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/fragment_about__spread_the_word"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>

View file

@ -0,0 +1,33 @@
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
tools:context="com.github.dfa.diaspora_android.activity.AboutActivity$LicenseFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--Vertical Padding-->
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="@dimen/activity_vertical_margin" />
<TextView
style="@android:style/TextAppearance.DeviceDefault.Large"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fragment_changelog__changelog" />
<TextView
android:id="@+id/fragment_changelog__content"
style="@android:style/TextAppearance.DeviceDefault.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>

View file

@ -39,7 +39,7 @@
android:id="@+id/main__bottombar"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@color/colorPrimary"
android:background="@color/color_primary"
android:theme="@style/BottomToolbarMenuOverflowStyle"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:popupTheme="@style/Theme.AppCompat.NoActionBar" />

View file

@ -3,7 +3,7 @@
android:id="@+id/nav_drawer"
android:layout_width="wrap_content"
android:layout_height="110dp"
android:background="@color/colorPrimary"
android:background="@color/color_primary"
android:gravity="bottom"
android:orientation="vertical"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

View file

@ -19,22 +19,4 @@
<string name="fragment_debug__pod_profile_url">Pod Domain: %1$s</string>
<string name="fragment_debug__toast_log_copied">Debug-Protokoll in Zwischenablage kopiert</string>
<string name="fragment_license__3rd_party_libs_title">Verwendete Drittanbieter-Bibliotheken</string>
<!-- About (large amount of text) -->
<string name="fragment_about__about_content">
DiasporaForAndroid ist dein Begleiter auf deinen Streifzügen durch das soziale Netzwerk Diaspora. Er bietet dir zusätzliche Features wie nützliche Toolbars und Unterstützung für Proxyserver wie etwa das Tornetzwerk. &lt;br&gt;&lt;br&gt;
Diaspora benutzt Markdown-Formatierung für deine Beiträge. Weitere Informationen dazu findest du auf&lt;br&gt;
https://wiki.diasporafoundation.org/Markdown_reference_guide &lt;br&gt; &lt;br&gt;
DiasporaForAndroid wird frei wie in Freiheit entwickelt und folgt den Ideen des Diaspora Projektes. &lt;br&gt;
Den Quellcode findest du auf Github: &lt;br&gt;
https://github.com/Diaspora-for-Android/diaspora-android &lt;br&gt; &lt;br&gt;
Wenn du auf Probleme stößt oder Vorschläge hast, nutze den Bugtracker (siehe Link oben).
Alternativ kannst du deine Frage auch mit dem Hashtag #DFAQ auf Diaspora posten.&lt;br&gt; &lt;br&gt;
Die App ist nicht in deiner Sprache verfügbar? Hilf mit und übersetze die App auf Crowdin.com!&lt;br&gt;
https://crowdin.com/project/diaspora-for-android &lt;br&gt; &lt;br&gt;
Wenn du Lust hast erzähle doch deinen Freunden von #DiasporaForAndroid!</string>
<!-- Lorem ipsum -->
</resources>

View file

@ -19,22 +19,4 @@
<string name="fragment_debug__pod_profile_url">Adresse du pod : %1$s</string>
<string name="fragment_debug__toast_log_copied">Journal de débogage copié dans le presse-papiers</string>
<string name="fragment_license__3rd_party_libs_title">Bibliothèques tierces utilisées</string>
<!-- About (large amount of text) -->
<string name="fragment_about__about_content">
DiasporaForAndroid est votre app compagnon pour naviguer sur le réseau social Diaspora*. Il ajoute des fonctionnalités supplémentaires comme des barres doutils utiles et la prise en charge pour les serveurs proxy comme le réseau Tor à votre expérience sociale. &lt;br&gt;&lt;br&gt;
Diaspora* utilise Markdown pour mettre en forme les messages. Vous pouvez trouver plus dinformations sur&lt;br&gt;
https://wiki.diasporafoundation.org/Markdown_reference_guide &lt;br&gt; &lt;br&gt;
DiasporaForAndroid est un logiciel libre et suit les idées du projet Diaspora*. &lt;br&gt;
Vous pouvez trouver le code source sur Github : &lt;br&gt;
https://github.com/Diaspora-for-Android/diaspora-android &lt;br&gt; &lt;br&gt;
Si vous rencontrez des problèmes ou si vous avez des suggestions, vous pouvez utiliser notre bug tracker avec le lien ci-dessus.
Alternativement, vous pouvez poster votre question avec le hashtag #DFAQ sur Diaspora*. &lt;br&gt; &lt;br&gt;
Cette application nest pas disponible dans votre langue ? Découvrez notre projet sur Crowdin et aidez à la traduire ! !&lt;br&gt;
https://crowdin.com/project/diaspora-for-android &lt;br&gt; &lt;br&gt;
Aussi, nhésitez pas à parler à vos amis de #DiasporaForAndroid !</string>
<!-- Lorem ipsum -->
</resources>

View file

@ -16,22 +16,4 @@
<string name="fragment_debug__device_name">Nome dispositivo: %1$s</string>
<string name="fragment_debug__toast_log_copied">Log di debug copiato negli appunti</string>
<string name="fragment_license__3rd_party_libs_title">Librerie di terze parti usate</string>
<!-- About (large amount of text) -->
<string name="fragment_about__about_content">
DiasporaForAndroid è la tua app per navigare sul social network Diaspora. Aggiunge funzioni, come un\'utile barra di navigazione e il supporto ai server proxy come la rete Tor, alla tua esperienza social. &lt;br&gt;&lt;br&gt;
Diaspora usa la sintassi Markdown per formattare i post. Puoi trovare maggiori informazioni su&lt;br&gt;
https://wiki.diasporafoundation.org/Markdown_reference_guide/it &lt;br&gt; &lt;br&gt;
DiasporaForAndroid è sviluppato liberamente e segue le idee del progetto Diaspora. &lt;br&gt;
Puoi trovare il codice sorgente su Github: &lt;br&gt;
https://github.com/Diaspora-for-Android/diaspora-android &lt;br&gt; &lt;br&gt;
Se trovi qualsiasi problema o hai dei suggerimenti puoi usare il nostro bug tracker al link sopraccitato.
Alternativamente puoi postare la tua domanda con l\'hashtag #DFAQ su Diaspora. &lt;br&gt; &lt;br&gt;
Quest\'app non è tradotta nella tua lingua? Visita il nostro progetto su Crowdin e aiuta la traduzione!&lt;br&gt;
https://crowdin.com/project/diaspora-for-android &lt;br&gt; &lt;br&gt;
Sentiti poi libero di parlare ai tuoi amici di #DiasporaForAndroid!</string>
<!-- Lorem ipsum -->
</resources>

View file

@ -19,22 +19,4 @@
<string name="fragment_debug__pod_profile_url">ポッドドメイン: %1$s</string>
<string name="fragment_debug__toast_log_copied">デバッグログをクリップボードにコピーしました</string>
<string name="fragment_license__3rd_party_libs_title">使用したサードパーティ ライブラリー</string>
<!-- About (large amount of text) -->
<string name="fragment_about__about_content">
DiasporaForAndroid は、ダイアスポラ ソーシャル ネットワークを閲覧するためのコンパニオン アプリです。ソーシャル体験に便利なツールバーや Tor のようなプロキシ サーバーのサポートのような追加機能があります。&lt;br&gt;&lt;br&gt;
ダイアスポラは、投稿の書式にマークダウンを使用します。詳細は&lt;br&gt;
https://wiki.diasporafoundation.org/Markdown_reference_guide &lt;br&gt; &lt;br&gt;
DiasporaForAndroid は自由に無料で開発され、ダイアスポラ プロジェクトの考えをフォローしています。&lt;br&gt;
Github でソースコードを見つけることができます: &lt;br&gt;
https://github.com/Diaspora-for-Android/diaspora-android &lt;br&gt; &lt;br&gt;
何か問題に直面したり、提案がある場合は、上記のリンクで私たちのバグトラッカーを使用できます。
またダイアスポラにハッシュタグ #DFAQ で質問を投稿することもできます。&lt;br&gt; &lt;br&gt;
このアプリがあなたの言語で利用可能できませんか? Crowdin.com で私たちのプロジェクトを確認して、翻訳を手伝ってください!&lt;br&gt;
https://crowdin.com/project/diaspora-for-android &lt;br&gt; &lt;br&gt;
また気軽に #DiasporaForAndroid について友達に教えてください!</string>
<!-- Lorem ipsum -->
</resources>

View file

@ -4,6 +4,6 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/colorPrimary</item>
<item name="android:statusBarColor">@color/color_primary</item>
</style>
</resources>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">@color/md_blue_650</color>
<color name="colorPrimaryDark">@color/md_blue_750</color>
<color name="colorAccent">@color/md_deep_orange_650</color>
<color name="color_primary">@color/md_blue_650</color>
<color name="color_primary_dark">@color/md_blue_750</color>
<color name="color_accent">@color/md_deep_orange_650</color>
<!-- Colors from Palette -->
<color name="primary">@color/md_blue_650</color>
@ -17,7 +17,7 @@
<color name="white">#ffffff</color>
<color name="black">#000000</color>
<color name="actvitiy_white">#eeeeee</color>
<color name="activity_white">#eeeeee</color>
<color name="transparent_black">#c4000000</color>
<color name="alternate_row_color">@color/md_grey_200</color>

View file

@ -16,4 +16,10 @@
<dimen name="textsize_badge_count">11sp</dimen>
<dimen name="color_picker_circle_size">30dp</dimen>
<dimen name="card_view__margin__start_end">16dp</dimen>
<dimen name="card_view__margin__top_bottom">8dp</dimen>
<dimen name="card_view__margin__top_bottom_double">16dp</dimen>
<dimen name="card_view__elevation">5dp</dimen>
<dimen name="card_view__corner_radius">5dp</dimen>
</resources>

View file

@ -27,23 +27,28 @@
<!-- About (large amount of text) -->
<string name="fragment_about__about_content">
DiasporaForAndroid is your companion app for browsing the Diaspora social network. It adds features like useful toolbars and support for proxy servers like the Tor Network to your social experience. &lt;br>&lt;br>
Diaspora uses Markdown to format posts. You can find more information at&lt;br>
https://diasporafoundation.org/formatting &lt;br> &lt;br>
DiasporaForAndroid is developed free as in freedom and follows the ideas of the Diaspora project. &lt;br>
You can find the source code on Github: &lt;br>
https://github.com/Diaspora-for-Android/diaspora-android &lt;br> &lt;br>
If you face any problems or if you have suggestions, you can use our bug tracker at the link above.
Alternatively you can post your question with the hashtag #DFAQ on Diaspora. &lt;br> &lt;br>
This app is not available in your language? Check out our project on Crowdin.com and help to translate it!&lt;br>
https://crowdin.com/project/diaspora-for-android &lt;br> &lt;br>
Also feel free to tell your friends about #DiasporaForAndroid!</string>
<string name="fragment_about__about_the_app">
DiasporaForAndroid is your companion app for browsing the Diaspora social network. It adds features like useful toolbars and support for proxy servers like the Tor Network to your social experience.</string>
<string name="fragment_about__about_markdown">Diaspora uses Markdown to format posts.</string>
<string name="fragment_about__learn_more">Learn more!</string>
<string name="fragment_about__about_markdown_link" translatable="false">https://wiki.diasporafoundation.org/Markdown_reference_guide></string>
<string name="fragment_about__contribute">Contribute</string>
<string name="fragment_about__about_development">DiasporaForAndroid is developed free as in freedom and follows the ideas of the Diaspora project. If you want to contribute, go ahead! We greatly appreciate any kind of help!</string>
<string name="fragment_about__about_source_at_github">Get the source code!</string>
<string name="fragment_about__github_repo_link" translatable="false">https://github.com/Diaspora-for-Android/diaspora-android</string>
<string name="fragment_about__about_issues">DiasporaForAndroid is still in development, so if you have suggestions or any kind of feedback, please let us know! (You can use our bug tracker)</string>
<string name="fragment_about__issue_tracker">To the bug tracker!</string>
<string name="fragment_about__github_issue_link">https://github.com/Diaspora-for-Android/diaspora-android/issues</string>
<string name="fragment_about__missing_translations">This app is not available in your language? Why don\'t you help us by translating it?</string>
<string name="fragment_about__translations">Let me translate!</string>
<string name="fragment_about__translations_link" translatable="false">https://crowdin.com/project/diaspora-for-android/invite</string>
<string name="fragment_about__tell_your_friends">Also feel free to tell your friends about #DiasporaForAndroid!</string>
<string name="fragment_about__spread_the_word">Spread the word!</string>
<string name="fragment_about__share_app_text">Hey! Check out #DiasporaForAndroid! %1$s</string>
<string name="fragment_about__fdroid_link" translatable="false">https://f-droid.org/app/com.github.dfa.diaspora_android</string>
<!-- Changelog -->
<string name="fragment_changelog__changelog">Changelog</string>
<!-- Lorem ipsum -->
<string name="lorem_ipsum" translatable="false">Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</string>
</resources>

View file

@ -116,8 +116,8 @@
<string name="pref_desc__http_proxy_enabled">Proxy Diaspora\'s traffic to circumvent firewalls.\nMay require restart. This might not work on some phones.</string>
<string name="pref_title__http_proxy_host">Host</string>
<string name="pref_title__http_proxy_port">Port</string>
<string name="HTTP" translatable="false">HTTP</string>
<string name="SOCKS5" translatable="false">SOCKS5</string>
<string name="http" translatable="false">HTTP</string>
<string name="socks5" translatable="false">SOCKS5</string>
<string name="toast__proxy_disabled__restart_required">App needs to restart to disable proxy usage</string>
<string name="toast__proxy_orbot_preset_loaded">Orbot proxy preset loaded</string>

View file

@ -3,10 +3,10 @@
<!-- Base application theme. -->
<style name="DiasporaLight" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="actionMenuTextColor">@color/colorAccent</item>
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_primary_dark</item>
<item name="colorAccent">@color/color_accent</item>
<item name="actionMenuTextColor">@color/color_accent</item>
</style>
<style name="DiasporaLight.NoActionBar">

View file

@ -2,7 +2,7 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory
android:key="@string/pref_key__title__proxy"
android:title="@string/HTTP">
android:title="@string/http">
<com.github.dfa.diaspora_android.ui.theme.ThemedCheckBoxPreference
android:defaultValue="false"
android:key="@string/pref_key__http_proxy_enabled"