1
0
Fork 0
mirror of https://github.com/gsantner/dandelion synced 2024-06-26 05:24:52 +02:00
This commit is contained in:
vanitasvitae 2016-08-07 23:14:07 +02:00
commit c6e3a60411
94 changed files with 1144 additions and 253 deletions

1
.gitignore vendored
View file

@ -8,6 +8,7 @@ build/
# User-specific configurations
local.properties
crowdin.yaml
.idea
.idea/libraries/

8
.hidden Executable file
View file

@ -0,0 +1,8 @@
build
crowdin.yaml
diaspora-android.iml
gradle
gradle.properties
gradlew
gradlew.bat
local.properties

View file

@ -84,6 +84,7 @@ import com.github.dfa.diaspora_android.listener.WebUserProfileChangedListener;
import com.github.dfa.diaspora_android.ui.ContextMenuWebView;
import com.github.dfa.diaspora_android.ui.CustomWebViewClient;
import com.github.dfa.diaspora_android.util.Helpers;
import com.github.dfa.diaspora_android.util.WebHelper;
import org.json.JSONException;
@ -114,14 +115,12 @@ public class MainActivity extends AppCompatActivity
public static final String ACTION_CHANGE_ACCOUNT = "com.github.dfa.diaspora_android.MainActivity.change_account";
public static final String ACTION_CLEAR_CACHE = "com.github.dfa.diaspora_android.MainActivity.clear_cache";
public static final String ACTION_UPDATE_TITLE_FROM_URL = "com.github.dfa.diaspora_android.MainActivity.set_title";
public static final String ACTION_RELOAD_ACTIVITY = "com.github.dfa.diaspora_android.MainActivity.reload_activity";
public static final String URL_MESSAGE = "URL_MESSAGE";
public static final String EXTRA_URL = "com.github.dfa.diaspora_android.extra_url";
private App app;
private String podDomain;
private Menu menu;
private int notificationCount = 0;
private int conversationCount = 0;
private ValueCallback<Uri[]> mFilePathCallback;
private String mCameraPhotoPath;
private WebSettings webSettings;
@ -219,7 +218,7 @@ public class MainActivity extends AppCompatActivity
.setAction(android.R.string.yes, new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/notifications");
} else {
Snackbar.make(contentLayout, R.string.no_internet, Snackbar.LENGTH_LONG).show();
@ -236,7 +235,7 @@ public class MainActivity extends AppCompatActivity
String url = "https://" + podDomain;
if (savedInstanceState == null) {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadData("", "text/html", null);
webView.loadUrl(url);
} else {
@ -291,7 +290,6 @@ public class MainActivity extends AppCompatActivity
webViewClient = new CustomWebViewClient(app, webView);
webView.setWebViewClient(webViewClient);
/*
* WebChromeClient
*/
@ -301,19 +299,15 @@ public class MainActivity extends AppCompatActivity
progressBar.setProgress(progress);
if (progress > 0 && progress <= 60) {
Helpers.getNotificationCount(wv);
Helpers.getUserProfile(wv);
WebHelper.getUserProfile(wv);
WebHelper.optimizeMobileSiteLayout(wv);
}
if (progress > 60) {
Helpers.applyDiasporaMobileSiteChanges(wv);
WebHelper.optimizeMobileSiteLayout(wv);
}
if (progress == 100) {
progressBar.setVisibility(View.GONE);
} else {
progressBar.setVisibility(View.VISIBLE);
}
progressBar.setVisibility(progress == 100 ? View.GONE : View.VISIBLE);
}
@Override
@ -394,6 +388,10 @@ public class MainActivity extends AppCompatActivity
app.getAvatarImageLoader().startImageDownload(navheaderImage, appSettings.getAvatarUrl());
}
}
Menu navMenu = navView.getMenu();
navMenu.findItem(R.id.nav_exit).setVisible(appSettings.isShowExitButtonInNavAlso());
}
@OnClick(R.id.toolbar)
@ -440,6 +438,9 @@ public class MainActivity extends AppCompatActivity
Helpers.animateToActivity(MainActivity.this, PodSelectionActivity.class, true);
} else if (ACTION_CLEAR_CACHE.equals(action)) {
webView.clearCache(true);
} else if (ACTION_RELOAD_ACTIVITY.equals(action)) {
recreate();
return;
} else if (Intent.ACTION_SEND.equals(action) && type != null) {
switch (type) {
case "text/plain":
@ -515,9 +516,11 @@ public class MainActivity extends AppCompatActivity
if (webView.canGoBack()) {
webView.goBack();
} else {
if (!snackbarExitApp.isShown())
snackbarExitApp.show();
return;
}
if (!snackbarExitApp.isShown()) {
snackbarExitApp.show();
}
}
@ -578,20 +581,19 @@ public class MainActivity extends AppCompatActivity
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
this.menu = menu;
MenuItem itemNotification = menu.findItem(R.id.action_notifications);
if (itemNotification != null) {
if (notificationCount > 0) {
itemNotification.setIcon(R.drawable.ic_bell_ring_white_24dp);
if (podUserProfile.getNotificationCount() > 0) {
itemNotification.setIcon(R.drawable.ic_notifications_colored_48px);
} else {
itemNotification.setIcon(R.drawable.ic_bell_outline_white_24dp);
itemNotification.setIcon(R.drawable.ic_notifications_white_48px);
}
MenuItem itemConversation = menu.findItem(R.id.action_conversations);
if (conversationCount > 0) {
itemConversation.setIcon(R.drawable.ic_message_text_white_24dp);
if (podUserProfile.getUnreadMessagesCount() > 0) {
itemConversation.setIcon(R.drawable.ic_email_colored_48px);
} else {
itemConversation.setIcon(R.drawable.ic_message_text_outline_white_24dp);
itemConversation.setIcon(R.drawable.ic_mail_white_48px);
}
}
return super.onPrepareOptionsMenu(menu);
@ -601,7 +603,7 @@ public class MainActivity extends AppCompatActivity
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_notifications: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/notifications");
return true;
} else {
@ -611,7 +613,7 @@ public class MainActivity extends AppCompatActivity
}
case R.id.action_conversations: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/conversations");
return true;
} else {
@ -621,7 +623,7 @@ public class MainActivity extends AppCompatActivity
}
case R.id.action_reload: {
if(Helpers.isOnline(MainActivity.this)) {
if(WebHelper.isOnline(MainActivity.this)) {
webView.reload();
return true;
} else {
@ -642,7 +644,7 @@ public class MainActivity extends AppCompatActivity
}
case R.id.action_compose: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/status_messages/new");
} else {
snackbarNoInternet.show();
@ -678,7 +680,7 @@ public class MainActivity extends AppCompatActivity
}
case R.id.action_search: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
@ -746,6 +748,7 @@ public class MainActivity extends AppCompatActivity
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("ResultOfMethodCallIgnored")
private boolean makeScreenshotOfWebView(boolean hasToShareScreenshot) {
if (android.os.Build.VERSION.SDK_INT >= 23) {
int hasWRITE_EXTERNAL_STORAGE = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
@ -801,7 +804,7 @@ public class MainActivity extends AppCompatActivity
if (bitmapWriter != null) {
try {
bitmapWriter.close();
} catch (IOException _ignored) {/* Nothing */}
} catch (IOException _ignSaveored) {/* Nothing */}
}
}
@ -836,12 +839,13 @@ public class MainActivity extends AppCompatActivity
void handleSendText(Intent intent) {
webView.loadUrl("https://"+podDomain+"/status_messages/new");
String content = intent.getStringExtra(Intent.EXTRA_TEXT);
String content = WebHelper.replaceUrlWithMarkdown(intent.getStringExtra(Intent.EXTRA_TEXT));
if(appSettings.isAppendSharedViaApp()) {
//TODO: Make \n work
content = content + " \n" +getString(R.string.shared_by_diaspora_android);
// &#10; = \n
content = content + "\n\n" + getString(R.string.shared_by_diaspora_android);
}
final String sharedText = content;
final String sharedText = WebHelper.escapeHtmlText(content);
if (sharedText != null) {
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
@ -868,20 +872,24 @@ public class MainActivity extends AppCompatActivity
*/
void handleSendSubject(Intent intent) {
webView.loadUrl("https://"+podDomain+"/status_messages/new");
String content = intent.getStringExtra(Intent.EXTRA_TEXT);
final String sharedSubject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
String content = WebHelper.replaceUrlWithMarkdown(intent.getStringExtra(Intent.EXTRA_TEXT));
String subject = WebHelper.replaceUrlWithMarkdown(intent.getStringExtra(Intent.EXTRA_SUBJECT));
if (appSettings.isAppendSharedViaApp()) {
//TODO: Make \n work
content = content + " \n" + getString(R.string.shared_by_diaspora_android);
// &#10; = \n
content = content + "\n\n" + getString(R.string.shared_by_diaspora_android);
}
final String sharedText = content;
if (sharedSubject != null) {
final String sharedSubject = WebHelper.escapeHtmlText(subject);
final String sharedContent = WebHelper.escapeHtmlText(content);
if (subject != null) {
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('textarea')[0].style.height='110px'; " +
"document.getElementsByTagName('textarea')[0].innerHTML = '**" + sharedSubject + "** " + sharedText + "'; " +
"document.getElementsByTagName('textarea')[0].innerHTML = '**" + sharedSubject + "** " + sharedContent + "'; " +
" if(document.getElementById(\"main_nav\")) {" +
" document.getElementById(\"main_nav\").parentNode.removeChild(" +
" document.getElementById(\"main_nav\"));" +
@ -908,76 +916,34 @@ public class MainActivity extends AppCompatActivity
// TODO: Move from Javascript interface
@Override
public void onNotificationCountChanged(int notificationCount) {
// Count saved in PodUserProfile
invalidateOptionsMenu();
if (notificationCount > 0 && !snackbarNewNotification.isShown()
&& !webView.getUrl().equals("https://" + podDomain + "/notifications")) {
snackbarNewNotification.show();
}
}
// TODO: Move from Javascript interface
@Override
public void onUnreadMessageCountChanged(int unreadMessageCount) {
// Count saved in PodUserProfile
invalidateOptionsMenu();
if (unreadMessageCount > 0 && !snackbarNewNotification.isShown()
&& !webView.getUrl().equals("https://" + podDomain + "/notifications")) {
snackbarNewNotification.show();
}
}
private class JavaScriptInterface {
@JavascriptInterface
public void setNotificationCount(final String webMessage) {
uiHandler.post(new Runnable() {
@Override
public void run() {
if (menu == null) {
return;
}
notificationCount = Integer.valueOf(webMessage);
MenuItem item = menu.findItem(R.id.action_notifications);
if (item != null) {
if (notificationCount > 0) {
item.setIcon(R.drawable.ic_bell_ring_white_24dp);
if (!snackbarNewNotification.isShown() && !webView.getUrl().equals("https://" + podDomain + "/notifications"))
snackbarNewNotification.show();
} else {
item.setIcon(R.drawable.ic_bell_outline_white_24dp);
}
}
}
});
}
@JavascriptInterface
public void setUserProfile(final String webMessage) throws JSONException {
if (podUserProfile.isRefreshNeeded()) {
podUserProfile.parseJson(webMessage);
}
}
@JavascriptInterface
public void setConversationCount(final String webMessage) {
uiHandler.post(new Runnable() {
@Override
public void run() {
if (menu == null) {
return;
}
conversationCount = Integer.valueOf(webMessage);
MenuItem item = menu.findItem(R.id.action_conversations);
if (item != null) {
if (conversationCount > 0) {
item.setIcon(R.drawable.ic_message_text_white_24dp);
if (!snackbarNewNotification.isShown() && !webView.getUrl().equals("https://" + podDomain + "/notifications"))
snackbarNewNotification.show();
} else {
item.setIcon(R.drawable.ic_message_text_outline_white_24dp);
}
}
}
});
}
}
@SuppressWarnings("StatementWithEmptyBody")
@ -986,7 +952,7 @@ public class MainActivity extends AppCompatActivity
// Handle navigation view item clicks here.
switch (item.getItemId()) {
case R.id.nav_stream: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/stream");
} else {
snackbarNoInternet.show();
@ -995,7 +961,7 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_profile: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/people/" + appSettings.getProfileId());
} else {
snackbarNoInternet.show();
@ -1004,9 +970,9 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_followed_tags: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
// webView.loadUrl("https://" + podDomain + "/followed_tags");
Helpers.showFollowedTagsList(webView, app);
WebHelper.showFollowedTagsList(webView, app);
setTitle(R.string.nav_followed_tags);
} else {
snackbarNoInternet.show();
@ -1015,9 +981,9 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_aspects: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
// webView.loadUrl("https://" + podDomain + "/aspects");
Helpers.showAspectList(webView, app);
WebHelper.showAspectList(webView, app);
setTitle(R.string.aspects);
} else {
snackbarNoInternet.show();
@ -1026,7 +992,7 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_activities: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/activity");
} else {
snackbarNoInternet.show();
@ -1035,7 +1001,7 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_liked: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/liked");
} else {
snackbarNoInternet.show();
@ -1044,7 +1010,7 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_commented: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/commented");
} else {
snackbarNoInternet.show();
@ -1053,22 +1019,29 @@ public class MainActivity extends AppCompatActivity
break;
case R.id.nav_mentions: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/mentions");
} else {
snackbarNoInternet.show();
}
break;
}
break;
case R.id.nav_public: {
if (Helpers.isOnline(MainActivity.this)) {
if (WebHelper.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/public");
} else {
snackbarNoInternet.show();
}
break;
}
case R.id.nav_exit: {
moveTaskToBack(true);
finish();
break;
}
break;
case R.id.nav_settings_app: {
startActivity(new Intent(this, SettingsActivity.class));

View file

@ -46,6 +46,7 @@ import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.task.GetPodsService;
import com.github.dfa.diaspora_android.util.Helpers;
import com.github.dfa.diaspora_android.util.WebHelper;
import java.util.ArrayList;
@ -80,7 +81,7 @@ public class PodSelectionActivity extends AppCompatActivity {
setListedPods(app.getSettings().getPreviousPodlist());
LocalBroadcastManager.getInstance(this).registerReceiver(podListReceiver, new IntentFilter(GetPodsService.MESSAGE_PODS_RECEIVED));
if (!Helpers.isOnline(PodSelectionActivity.this)) {
if (!WebHelper.isOnline(PodSelectionActivity.this)) {
Snackbar.make(listPods, R.string.no_internet, Snackbar.LENGTH_LONG).show();
}
}
@ -164,7 +165,7 @@ public class PodSelectionActivity extends AppCompatActivity {
Linkify.addLinks(dialogMessage, Linkify.ALL);
// Check if online
if (!Helpers.isOnline(PodSelectionActivity.this)) {
if (!WebHelper.isOnline(PodSelectionActivity.this)) {
Snackbar.make(listPods, R.string.no_internet, Snackbar.LENGTH_LONG).show();
return;
}
@ -232,7 +233,7 @@ public class PodSelectionActivity extends AppCompatActivity {
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_reload: {
if (Helpers.isOnline(PodSelectionActivity.this)) {
if (WebHelper.isOnline(PodSelectionActivity.this)) {
Intent i = new Intent(PodSelectionActivity.this, GetPodsService.class);
startService(i);
return true;

View file

@ -38,6 +38,7 @@ import com.github.dfa.diaspora_android.R;
public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences sharedPreferences;
private boolean activityRestartRequired = false;
@Override
public void onCreate(Bundle savedInstanceState) {
@ -124,6 +125,12 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
intent.setAction(MainActivity.ACTION_CLEAR_CACHE);
break;
}
case R.string.pref_title__show_exit_button_in_nav_also:
case R.string.pref_title__intellihide_toolbars: {
activityRestartRequired = true;
return true;
}
default: {
intent = null;
break;
@ -136,4 +143,14 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
}
return super.onPreferenceTreeClick(screen, preference);
}
@Override
protected void onStop() {
super.onStop();
if (activityRestartRequired){
Intent intent = new Intent(this, MainActivity.class);
intent.setAction(MainActivity.ACTION_RELOAD_ACTIVITY);
startActivity(intent);
}
}
}

View file

@ -28,6 +28,7 @@ import android.widget.ImageView;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.util.Helpers;
import com.github.dfa.diaspora_android.util.WebHelper;
import butterknife.BindView;
import butterknife.ButterKnife;

View file

@ -87,6 +87,10 @@ public class AppSettings {
return pref.getBoolean(context.getString(ressourceId), defaultValue);
}
private int getInt(SharedPreferences pref, int ressourceId, int defaultValue) {
return pref.getInt(context.getString(ressourceId), defaultValue);
}
/*
// Setters & Getters
@ -174,6 +178,22 @@ public class AppSettings {
setStringArray(prefPod, R.string.pref_key__podprofile_followed_tags, tags);
}
public int getUnreadMessageCount(){
return getInt(prefPod, R.string.pref_key__podprofile_unread_message_count, 0);
}
public void setUnreadMessageCount(int unreadMessageCount) {
setInt(prefPod, R.string.pref_key__podprofile_unread_message_count, unreadMessageCount);
}
public int getNotificationCount(){
return getInt(prefPod, R.string.pref_key__podprofile_notification_count, 0);
}
public void setNotificationCount(int notificationCount) {
setInt(prefPod, R.string.pref_key__podprofile_notification_count, notificationCount);
}
public boolean isAppendSharedViaApp() {
return getBoolean(prefApp, R.string.pref_key__append_shared_via_app, true);
}
@ -234,4 +254,8 @@ public class AppSettings {
public boolean isIntellihideToolbars() {
return getBoolean(prefApp, R.string.pref_key__intellihide_toolbars, true);
}
public boolean isShowExitButtonInNavAlso(){
return getBoolean(prefApp, R.string.pref_key__show_exit_button_in_nav_also, false);
}
}

View file

@ -60,6 +60,8 @@ public class PodUserProfile {
name = appSettings.getName();
podAspects = appSettings.getPodAspects();
followedTags = appSettings.getFollowedTags();
notificationCount = appSettings.getNotificationCount();
unreadMessagesCount = appSettings.getUnreadMessageCount();
}
public PodUserProfile(App app, Handler callbackHandler, WebUserProfileChangedListener listener) {
@ -102,11 +104,12 @@ public class PodUserProfile {
// Unread message count
if (json.has("notifications_count") && loadNotificationCount(json.getInt("notifications_count"))) {
appSettings.setNotificationCount(notificationCount);
}
// Unread message count
if (json.has("unread_messages_count") && loadUnreadMessagesCount(json.getInt("unread_messages_count"))) {
appSettings.setPodAspects(podAspects);
appSettings.setUnreadMessageCount(unreadMessagesCount);
}
// Aspect

View file

@ -16,33 +16,15 @@
If not, see <http://www.gnu.org/licenses/>.
*/
package com.github.dfa.diaspora_android.util;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v4.content.ContextCompat;
import android.webkit.WebView;
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.PodAspect;
import com.github.dfa.diaspora_android.data.PodUserProfile;
import java.util.Locale;
public class Helpers {
public static boolean isOnline(Context context) {
ConnectivityManager cnm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cnm.getActiveNetworkInfo();
return ni != null && ni.isConnectedOrConnecting();
}
public static void animateToActivity(Activity from, Class to, boolean finishFromActivity) {
Intent intent = new Intent(from, to);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
@ -52,103 +34,4 @@ public class Helpers {
from.finish();
}
}
public static void applyDiasporaMobileSiteChanges(final WebView wv) {
wv.loadUrl("javascript: ( function() {" +
" document.documentElement.style.paddingBottom = '260px';" +
" document.getElementById('main').style.paddingTop = '5px';" +
" if(document.getElementById('main_nav')) {" +
" document.getElementById('main_nav').parentNode.removeChild(" +
" document.getElementById('main_nav'));" +
" } else if (document.getElementById('main-nav')) {" +
" document.getElementById('main-nav').parentNode.removeChild(" +
" document.getElementById('main-nav'));" +
" }" +
"})();");
}
public static void getNotificationCount(final WebView wv) {
wv.loadUrl("javascript: ( function() {" +
"if (document.getElementById('notification')) {" +
" var count = document.getElementById('notification').innerHTML;" +
" AndroidBridge.setNotificationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
" } else {" +
" AndroidBridge.setNotificationCount('0');" +
" }" +
" if (document.getElementById('conversation')) {" +
" var count = document.getElementById('conversation').innerHTML;" +
" AndroidBridge.setConversationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
" } else {" +
" AndroidBridge.setConversationCount('0');" +
" }" +
"})();");
}
public static void getUserProfile(final WebView wv) {
// aspects":[{"id":124934,"name":"Friends","selected":true},{"id":124937,"name":"Liked me","selected":false},{"id":124938,"name":"Follow","selected":false},{"id":128327,"name":"Nur ich","selected":false}]
wv.loadUrl("javascript: ( function() {" +
" if (typeof gon !== 'undefined' && typeof gon.user !== 'undefined') {" +
" var followed_tags = document.getElementById(\"followed_tags\");" +
" if(followed_tags != null) {" +
" try {" +
" var links = followed_tags.nextElementSibling.children[0].children;" +
" var tags = [];" +
" for(var i = 0; i < links.length - 1; i++) {" + // the last element is "Manage followed tags" link
" tags.push(links[i].innerText.substring(1));" +
" }" +
" gon.user[\"android_app.followed_tags\"] = tags;" +
" } catch(e) {}" +
" }" +
" var userProfile = JSON.stringify(gon.user);" +
" AndroidBridge.setUserProfile(userProfile.toString());" +
" } " +
"})();");
}
public static void showAspectList(final WebView wv, final App app) {
wv.stopLoading();
PodUserProfile profile = app.getPodUserProfile();
StringBuilder sb = new StringBuilder();
sb.append("<html><body style='margin-top: 25px; margin-left:auto;margin-right:auto; font-size: 400%;'>");
// Content
for (PodAspect aspect : profile.getAspects()) {
sb.append("<span style='margin-left: 30px; '></span>&raquo; &nbsp;");
sb.append(aspect.toHtmlLink(app));
sb.append("<hr style='height:5px;' />");
}
// End
sb.append("</body></html>");
wv.loadDataWithBaseURL(null, sb.toString(), "text/html", "UTF-16", null);
}
public static void showFollowedTagsList(final WebView wv, final App app) {
wv.stopLoading();
PodUserProfile profile = app.getPodUserProfile();
StringBuilder sb = new StringBuilder();
sb.append("<html><body style='margin-top: 25px; margin-left:auto;margin-right:auto; font-size: 400%;'>");
// Content
AppSettings appSettings = app.getSettings();
sb.append("<span style='margin-left: 30px; '></span>&raquo; &nbsp;");
sb.append(String.format(Locale.getDefault(),
"<a href='https://%s/followed_tags' style='color: #000000; text-decoration: none;'><b>%s</b></a>",
appSettings.getPodDomain(), app.getString(R.string.all_tags)));
sb.append("<hr style='height:5px;' />");
for (String tag: profile.getFollowedTags()) {
sb.append("<span style='margin-left: 30px; '></span>&raquo; &nbsp;");
sb.append(String.format(Locale.getDefault(),
"<a href='https://%s/tags/%s' style='color: #000000; text-decoration: none;'>#%s</a>",
appSettings.getPodDomain(), tag, tag));
sb.append("<hr style='height:5px;' />");
}
// End
sb.append("</body></html>");
wv.loadDataWithBaseURL(null, sb.toString(), "text/html", "UTF-16", null);
}
}

View file

@ -0,0 +1,148 @@
/*
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 <http://www.gnu.org/licenses/>.
*/
package com.github.dfa.diaspora_android.util;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v4.content.ContextCompat;
import android.text.Html;
import android.webkit.URLUtil;
import android.webkit.WebView;
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.PodAspect;
import com.github.dfa.diaspora_android.data.PodUserProfile;
import java.net.URL;
import java.util.Locale;
/**
* Created by Gregor Santner on 07.08.16.
* https://gsantner.github.io
*/
public class WebHelper {
public static boolean isOnline(Context context) {
ConnectivityManager cnm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cnm.getActiveNetworkInfo();
return ni != null && ni.isConnectedOrConnecting();
}
public static String replaceUrlWithMarkdown(String url){
if( url != null && URLUtil.isHttpUrl(url) || URLUtil.isHttpsUrl(url)){
return "<" + url + ">";
}
return url;
}
public static String escapeHtmlText(String text){
text = Html.escapeHtml(text);;
text = text.replace("\n", "&#10;");
return text;
}
public static void optimizeMobileSiteLayout(final WebView wv) {
wv.loadUrl("javascript: ( function() {" +
" if (document.documentElement == null || document.documentElement.style == null) { return; }" +
" document.documentElement.style.paddingBottom = '260px';" +
" document.getElementById('main').style.paddingTop = '5px';" +
" if(document.getElementById('main_nav')) {" +
" document.getElementById('main_nav').parentNode.removeChild(" +
" document.getElementById('main_nav'));" +
" } else if (document.getElementById('main-nav')) {" +
" document.getElementById('main-nav').parentNode.removeChild(" +
" document.getElementById('main-nav'));" +
" }" +
"})();");
}
public static void getUserProfile(final WebView wv) {
// aspects":[{"id":124934,"name":"Friends","selected":true},{"id":124937,"name":"Liked me","selected":false},{"id":124938,"name":"Follow","selected":false},{"id":128327,"name":"Nur ich","selected":false}]
wv.loadUrl("javascript: ( function() {" +
" if (typeof gon !== 'undefined' && typeof gon.user !== 'undefined') {" +
" var followed_tags = document.getElementById(\"followed_tags\");" +
" if(followed_tags != null) {" +
" try {" +
" var links = followed_tags.nextElementSibling.children[0].children;" +
" var tags = [];" +
" for(var i = 0; i < links.length - 1; i++) {" + // the last element is "Manage followed tags" link
" tags.push(links[i].innerText.substring(1));" +
" }" +
" gon.user[\"android_app.followed_tags\"] = tags;" +
" } catch(e) {}" +
" }" +
" var userProfile = JSON.stringify(gon.user);" +
" AndroidBridge.setUserProfile(userProfile.toString());" +
" } " +
"})();");
}
public static void showAspectList(final WebView wv, final App app) {
wv.stopLoading();
PodUserProfile profile = app.getPodUserProfile();
StringBuilder sb = new StringBuilder();
sb.append("<html><body style='margin-top: 25px; margin-left:auto;margin-right:auto; font-size: 400%;'>");
// Content
for (PodAspect aspect : profile.getAspects()) {
sb.append("<span style='margin-left: 30px; '></span>&raquo; &nbsp;");
sb.append(aspect.toHtmlLink(app));
sb.append("<hr style='height:5px;' />");
}
// End
sb.append("</body></html>");
wv.loadDataWithBaseURL(null, sb.toString(), "text/html", "UTF-16", null);
}
public static void showFollowedTagsList(final WebView wv, final App app) {
wv.stopLoading();
PodUserProfile profile = app.getPodUserProfile();
StringBuilder sb = new StringBuilder();
sb.append("<html><body style='margin-top: 25px; margin-left:auto;margin-right:auto; font-size: 400%;'>");
// Content
AppSettings appSettings = app.getSettings();
sb.append("<span style='margin-left: 30px; '></span>&raquo; &nbsp;");
sb.append(String.format(Locale.getDefault(),
"<a href='https://%s/followed_tags' style='color: #000000; text-decoration: none;'><b>%s</b></a>",
appSettings.getPodDomain(), app.getString(R.string.all_tags)));
sb.append("<hr style='height:5px;' />");
for (String tag: profile.getFollowedTags()) {
sb.append("<span style='margin-left: 30px; '></span>&raquo; &nbsp;");
sb.append(String.format(Locale.getDefault(),
"<a href='https://%s/tags/%s' style='color: #000000; text-decoration: none;'>#%s</a>",
appSettings.getPodDomain(), tag, tag));
sb.append("<hr style='height:5px;' />");
}
// End
sb.append("</body></html>");
wv.loadDataWithBaseURL(null, sb.toString(), "text/html", "UTF-16", null);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 B

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M12,2C6.47,2 2,6.47 2,12s4.47,10 10,10 10,-4.47 10,-10S17.53,2 12,2zM17,15.59L15.59,17 12,13.41 8.41,17 7,15.59 10.59,12 7,8.41 8.41,7 12,10.59 15.59,7 17,8.41 13.41,12 17,15.59z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#EBFF7C" android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M15,15L3,15v2h12v-2zM15,7L3,7v2h12L15,7zM3,13h18v-2L3,11v2zM3,21h18v-2L3,19v2zM3,3v2h18L21,3L3,3z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M21.41,11.58l-9,-9C12.05,2.22 11.55,2 11,2H4c-1.1,0 -2,0.9 -2,2v7c0,0.55 0.22,1.05 0.59,1.42l9,9c0.36,0.36 0.86,0.58 1.41,0.58 0.55,0 1.05,-0.22 1.41,-0.59l7,-7c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-0.55 -0.23,-1.06 -0.59,-1.42zM5.5,7C4.67,7 4,6.33 4,5.5S4.67,4 5.5,4 7,4.67 7,5.5 6.33,7 5.5,7z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#EBFF7C" android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM11,19.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L9,15v1c0,1.1 0.9,2 2,2v1.93zM17.9,17.39c-0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L8,12v-2h2c0.55,0 1,-0.45 1,-1L11,7h2c1.1,0 2,-0.9 2,-2v-0.41c2.93,1.19 5,4.06 5,7.41 0,2.08 -0.8,3.97 -2.1,5.39z"/>
</vector>

View file

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 798 B

View file

@ -5,13 +5,13 @@
<item
android:id="@+id/action_notifications"
android:icon="@drawable/ic_bell_outline_white_24dp"
android:icon="@drawable/ic_notifications_white_48px"
android:title="@string/notifications"
app:showAsAction="always" />
<item
android:id="@+id/action_conversations"
android:icon="@drawable/ic_message_text_outline_white_24dp"
android:icon="@drawable/ic_mail_white_48px"
android:title="@string/conversations"
app:showAsAction="always" />

View file

@ -14,26 +14,26 @@
<item
android:id="@+id/nav_followed_tags"
android:icon="@drawable/jb_tag2"
android:icon="@drawable/ic_local_offer_black_48px"
android:title="@string/nav_followed_tags" />
<item
android:id="@+id/nav_aspects"
android:icon="@drawable/jb_aspects"
android:icon="@drawable/ic_group_black_48px"
android:title="@string/nav_aspects" />
<item
android:id="@+id/nav_activities"
android:icon="@drawable/jb_activities"
android:icon="@drawable/ic_history_black_48px"
android:title="@string/nav_activities" />
<item
android:id="@+id/nav_liked"
android:icon="@drawable/jb_heart"
android:icon="@drawable/ic_favorite_black_48px"
android:title="@string/nav_liked" />
<item
android:id="@+id/nav_commented"
android:icon="@drawable/jb_commented"
android:icon="@drawable/ic_format_align_left_black_48px"
android:title="@string/nav_commented" />
<item
@ -43,20 +43,26 @@
<item
android:id="@+id/nav_public"
android:icon="@drawable/jb_aspects"
android:icon="@drawable/ic_public_black_48px"
android:title="@string/nav_public_activities" />
<item
android:id="@+id/nav_exit"
android:icon="@drawable/ic_cancel_black_48px"
android:title="@string/action_exit_app"
android:visible="false"/>
</group>
<item android:title="@string/nav_menu_settings">
<menu>
<item
android:id="@+id/nav_settings_app"
android:icon="@drawable/jb_settings"
android:icon="@drawable/ic_settings_black_48px"
android:title="@string/nav_settings_view" />
<item
android:id="@+id/nav_license_help"
android:icon="@drawable/jb_license"
android:icon="@drawable/ic_info_black_48px"
android:title="@string/nav_help_license" />
</menu>
</item>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -18,6 +18,8 @@
<string name="pref_desc__proxy_enabled">Nutze einen Proxyserver um Firewalls zu umgehen</string>
<string name="pref_title__proxy_host">Host</string>
<string name="pref_title__proxy_port">Port</string>
<string name="pref_title__show_exit_button_in_nav_also">Beenden Button im Slider</string>
<string name="pref_desc__show_exit_button_in_nav_also">Fügt einen zusätzlichen »App beenden« Button zum Navigations-Slider hinzu</string>
<!-- Diaspora Settings -->
<string name="pref_title__personal_settings">Persönliche Einstellungen</string>
<string name="pref_desc__personal_settings">Öffne die Einstellungen deines Diaspora Accounts</string>
@ -34,4 +36,5 @@
<string name="pref_title__intellihide_toolbars">Toolbars intelligent verstecken</string>
<string name="pref_title__append_shared_via_app">Verweise auf App</string>
<string name="pref_desc__append_shared_via_app">Füge beim Teilen von Texten Verweis auf diese App an (\"geteilt durch&#8230;\")</string>
</resources>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -7,8 +7,10 @@
<string name="reload">Neu laden</string>
<string name="new_notifications">Ungelesene Benachrichtigung. Lesen?</string>
<!-- Common Words -->
<string name="settings">Einstellungen</string>
<string name="notifications">Benachrichtigungen</string>
<string name="conversations">Unterhaltungen</string>
<string name="stream">Stream</string>
<string name="profile">Profil</string>
<string name="aspects">Aspekte</string>
<string name="activities">Aktivitäten</string>
@ -16,6 +18,7 @@
<string name="commented">Kommentiert</string>
<string name="mentions">Erwähnungen</string>
<string name="public_">Öffentliche Aktivitäten</string>
<string name="search">Suche</string>
<!-- Pod Activity -->
<string name="title_activity_pods">Pod auswählen</string>
<string name="filter_hint">Pod-Domain eingeben</string>
@ -38,13 +41,12 @@
<string name="share__toast_saved_image_to_location">Speichere Bild als</string>
<string name="share__toast_screenshot">Bildschirmfoto wird gespeichert unter:</string>
<string name="share__toast_link_address_copied">Linkadresse kopiert &#8230;</string>
<string name="new_post">Neuer Beitrag</string>
<string name="action_go_to_top">Nach oben scrollen</string>
<string name="action_search_by_tags_or_persons">Suche nach Tags oder Personen …</string>
<string name="action_compose_new_post">Neuer Beitrag</string>
<string name="action_exit_app">App beenden</string>
<string name="action_toggle_desktop_page">Mobil-/Desktopansicht umschalten</string>
<string name="action_share_dotdotdot">Teilen&#8230;</string>
<string name="new_post">Neuer Beitrag</string>
<string name="search_alert_tag">nach Tags</string>
<string name="search_alert_people">nach Personen</string>
<string name="search_alert_bypeople_validate_needsomedata">Füge einen Namen ein.</string>
@ -139,4 +141,4 @@ along with this program. If not, see http://www.gnu.org/licenses.&lt;br&gt; &lt
https://www.flickr.com/photos/129581906@N06/sets/72157651933980136/with/16594947123.
Sie wurden von \"Lydia\" veröffentlicht und stehen unter der cc by-nc-sa Lizenz.&lt;/i&gt;</string>
<!-- Recently added - Please move to right section-->
</resources>
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -3,7 +3,7 @@
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<string name="pref_cat__visuals">Apparance</string>
<string name="pref_cat__visuals">Apparence</string>
<string name="pref_cat__network">Paramètres du réseau</string>
<string name="pref_cat__pod_settings">Paramètres du pod</string>
<!-- Visuals -->
@ -12,14 +12,29 @@
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<string name="pref_title__load_images">Charger les images</string>
<string name="pref_desc__load_images">Désactiver le chargements des images pour préserver la data mobile</string>
<!-- Proxy -->
<string name="pref_title__proxy_enabled">Activer Proxy</string>
<string name="pref_desc__proxy_enabled">Serveur Proxy.\n(Nécessite un redémarrage)</string>
<string name="pref_title__proxy_host">Hôte</string>
<string name="pref_title__proxy_port">Port</string>
<string name="pref_title__show_exit_button_in_nav_also">Bouton \"Quitter\" dans la barre de navigation</string>
<string name="pref_desc__show_exit_button_in_nav_also">Ajouter le bouton »Quitter l\'application« dans la barre de navigation</string>
<!-- Diaspora Settings -->
<string name="pref_title__personal_settings">Paramètres personnels</string>
<string name="pref_desc__manage_contacts">Gérer votre liste des contacts</string>
<string name="pref_desc__personal_settings">Ouvrir vos paramètres de compte Diaspora</string>
<string name="pref_title__manage_contacts">Contacts</string>
<string name="pref_desc__manage_contacts">Gérer votre liste de contacts</string>
<string name="pref_title__manage_tags">Gérer les Hashtags</string>
<string name="pref_desc__manage_tags">Ajouter et supprimer les hashtags que vous suivez</string>
<string name="pref_title__change_account">Changer de compte</string>
<string name="pref_desc__change_account">Effacer les données de session locale et passer à un autre pod/compte Diaspora</string>
<string name="pref_warning__change_account">Cette opération va effacer les cookies et données de session. Voulez-vous vraiment changer de compte/pod?</string>
<string name="pref_title__clear_cache">Vider le cache</string>
</resources>
<string name="pref_desc__clear_cache">Vider le cache</string>
<string name="pref_desc__intellihide_toolbars">Masquer les barres doutils en haut et en bas automatiquement lors du défilement</string>
<string name="pref_title__intellihide_toolbars">Masquage intelligent des barres d\'outils</string>
<string name="pref_title__append_shared_via_app">Ajoutez \"partagé via …\" aux partages</string>
<string name="pref_desc__append_shared_via_app">Ajoutez une référence à l\'application (« partagée via &#8230;\") aux textes partagés</string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -7,12 +7,18 @@
<string name="reload">Rafraîchir</string>
<string name="new_notifications">Notifications non lues. Lire ?</string>
<!-- Common Words -->
<string name="settings">Paramètres</string>
<string name="notifications">Notifications</string>
<string name="conversations">Discussions</string>
<string name="stream">Flux</string>
<string name="profile">Profil</string>
<string name="aspects">Aspects</string>
<string name="activities">Activités</string>
<string name="liked">Aimés</string>
<string name="commented">Commentés</string>
<string name="mentions">Mentions</string>
<string name="public_">Publique</string>
<string name="search">Rechercher</string>
<!-- Pod Activity -->
<string name="title_activity_pods">Selectionnez un Pod</string>
<string name="filter_hint">Entrez le nom de domaine du pod</string>
@ -21,6 +27,7 @@
<string name="valid_pod">Veuillez entrer un nom de domaine valide</string>
<string name="podlist_error">Erreur : impossible de récupérer la liste des pods !</string>
<string name="no_internet">Désolé, vous devez être connecté à Internet pour continuer</string>
<string name="confirmation">Confirmation</string>
<string name="confirm_pod">Voulez-vous vraiment utiliser\nhttps://%1$s\ncomme pod Diaspora ?</string>
<string name="confirm_exit">Souhaitez-vous quitter ?</string>
<!-- Drawer, Menu, Toolbar, ContextMenu -->
@ -34,12 +41,12 @@
<string name="share__toast_saved_image_to_location">Enregistrer l\'image sous</string>
<string name="share__toast_screenshot">Enregistrer la capture d\'écran sous :</string>
<string name="share__toast_link_address_copied">Lien copié&#8230;</string>
<string name="new_post">Nouveau message</string>
<string name="action_go_to_top">Retour en haut</string>
<string name="action_search_by_tags_or_persons">Recherche par tags ou par personnes</string>
<string name="action_compose_new_post">Nouveau message</string>
<string name="action_exit_app">Quitter l\'application</string>
<string name="action_toggle_desktop_page">Activer/désactiver la version mobile</string>
<string name="action_share_dotdotdot">Partager&#8230;</string>
<string name="new_post">Nouveau message</string>
<string name="search_alert_tag">par tags</string>
<string name="search_alert_people">par personne</string>
<string name="search_alert_bypeople_validate_needsomedata">Veuillez ajouter un nom</string>
@ -115,4 +122,4 @@
https://www.flickr.com/photos/129581906@N06/sets/72157651933980136/with/16594947123.
They were published by \"Lydia\" and are licensed under cc by-nc-sa.&lt;/i&gt;</string>
<!-- Recently added - Please move to right section-->
</resources>
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<string name="settings">Impostazioni</string>
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<string name="settings">സജ്ജീകരണങ്ങൾ</string>
<string name="notifications">അറിയിപ്പുകൾ</string>
<string name="conversations">സംഭാഷണങ്ങൾ</string>
<string name="stream">സ്ട്രീം</string>
<string name="liked">ഇഷ്ടപെട്ടവ</string>
<string name="commented">കമന്റ് ചെയ്തവ </string>
<string name="mentions">പരാമർശങ്ങൾ</string>
<string name="search">തിരയുക</string>
<!-- Pod Activity -->
<string name="title_activity_pods">പോഡ് തിരഞ്ഞെടുക്കുക</string>
<string name="filter_hint">പോഡ് അഡ്രസ് രേഖപ്പെടുത്തുക</string>
<string name="confirm_url">പോഡ് അഡ്രസ് ഉറപ്പാക്കുക</string>
<string name="podlist_source_note">അറിയിപ്പ് : പോഡുകളുടെ ലിസ്റ്റ് https://podupti.me യിൽ നിന്നാണ്‌ ലഭിക്കുന്നത്. തിരുത്തൽ വരുത്താനുള്ളയിടത്തിൽ മറ്റു പോഡുകളുടെ അഡ്രസ് നൽകാം.</string>
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<string name="shared_by_diaspora_android">*[gedeeld door #DiasporaForAndroid]*</string>
<!-- Application -->
<string name="reload">Opnieuw Laden</string>
<string name="new_notifications">Ongelezen bericht. Wilt u het lezen?</string>
<!-- Common Words -->
<string name="settings">Instellingen</string>
<string name="notifications">Meldingen</string>
<string name="conversations">Gesprekken</string>
<string name="stream">Stream</string>
<string name="profile">Profiel</string>
<string name="aspects">Aspecten</string>
<string name="activities">Activiteiten</string>
<string name="liked">Leuk gevonden</string>
<string name="commented">Gereageerd</string>
<string name="mentions">Vermeldingen</string>
<string name="public_">Openbaar</string>
<string name="search">Zoeken</string>
<!-- Pod Activity -->
<string name="title_activity_pods">Selecteer Pod</string>
<string name="filter_hint">Voer pod domein</string>
<string name="confirm_url">Bevestigen pod url</string>
<string name="podlist_source_note">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.</string>
<string name="valid_pod">Voer een geldige domeinnaam in</string>
<string name="podlist_error">Fout: Kan niet de podlijst ophalen!</string>
<string name="no_internet">Sorry, u moet verbinding met internet hebben om verder te gaan</string>
<string name="confirmation">Bevestiging</string>
<string name="confirm_pod">Wilt u echt \nhttps://%1$s\n als uw Diaspora pod gebruiken?</string>
<string name="confirm_exit">Wilt u afsluiten?</string>
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<string name="nav_help_license">Over de app | Help</string>
<string name="nav_followed_tags">Gevolgde Tags</string>
<string name="nav_public_activities">Publieke activiteiten</string>
<string name="nav_settings_view">App-instellingen</string>
<string name="share__share_link_as_text">Link delen als tekst</string>
<string name="share__share_screenshot">Screenshot van de webpagina delen</string>
<string name="share__take_screenshot">Neem screenshot van de webpagina</string>
<string name="share__toast_saved_image_to_location">Afbeelding opslaan</string>
<string name="share__toast_screenshot">Screenshot oplaan als:</string>
<string name="share__toast_link_address_copied">Link adres gekopieerd&#8230;</string>
<string name="new_post">Nieuw Bericht</string>
<string name="action_go_to_top">Terug naar boven</string>
<string name="action_search_by_tags_or_persons">Zoeken op tags of personen</string>
<string name="action_exit_app">App afsluiten</string>
<string name="action_share_dotdotdot">Delen&#8230;</string>
<string name="search_alert_tag">viaTags</string>
<string name="search_alert_people">via mensen</string>
<string name="search_alert_bypeople_validate_needsomedata">Voeg een naam toe</string>
<string name="context_menu_share_link">Deel adreslink</string>
<string name="context_menu_save_image">Afbeelding opslaan</string>
<string name="context_menu_share_image">Deel afbeelding</string>
<string name="context_menu_open_external_browser">Geopend in externe browser&#8230;</string>
<string name="context_menu_copy_link">Link-adres kopiëren naar Klembord</string>
<!-- More from MainActivity -->
<string name="toast_set_proxy_failed">Waarschuwing: Kan niet netwerk proxy instellen&#8230;</string>
<string name="unable_to_load_image">Niet in staat om afbeelding te laden</string>
<string name="all_tags">Alle tags</string>
<!-- Permissions -->
<string name="permissions_screenshot">U moet machtegingen aan \"Access Storage Permission\" geven om screenshots op te slaan. Daarna moet u de app volledig afsluiten of de telefoon opnieuw opstarten. Als u geen toestemming aan opslag wil geven maar screenshot functie later wil gebruiken, kunt u de toestemming later geven. Open dan: systemsettings - apps - Diaspora. In de machtegings sectie kunt u machtegingen geven aan \"write storage permission\".</string>
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<string name="pref_cat__visuals">Wygląd</string>
<string name="pref_cat__network">Sieć</string>
<string name="pref_cat__pod_settings">Ustawienia poda</string>
<!-- Visuals -->
<!-- Font size -->
<string name="pref_title__font_size">Rozmiar czcionki</string>
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<string name="pref_title__load_images">Załaduj obrazy</string>
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<string name="shared_by_diaspora_android">*[dzielone przez #DiasporaForAndroid]*</string>
<!-- Application -->
<string name="reload">Odśwież</string>
<string name="new_notifications">Nieprzeczytane powiadomienia. Chcesz je przeczytać?</string>
<!-- Common Words -->
<string name="settings">Ustawienia</string>
<string name="notifications">Powiadomienia</string>
<string name="conversations">Rozmowy</string>
<string name="stream">Strumień</string>
<string name="profile">Profil</string>
<string name="aspects">Aspekty</string>
<string name="activities">Aktywności</string>
<string name="liked">Polubione</string>
<string name="commented">Skomentowane</string>
<string name="search">Szukaj</string>
<!-- Pod Activity -->
<string name="title_activity_pods">Wybierz Pod</string>
<string name="filter_hint">Wprowadź domenę poda</string>
<string name="confirm_url">Potwierdzić adres url poda</string>
<string name="valid_pod">Wprowadź prawidłową nazwę domeny</string>
<string name="podlist_error">Błąd: Nie można pobrać listy podów!</string>
<string name="no_internet">Przepraszam, musisz być podłączony do Internetu, aby kontynuować</string>
<string name="confirmation">Potwierdzenie</string>
<string name="confirm_pod">Czy naprawdę chcesz używać\nhttps://%1$s \njako Twój Pod Diaspory?</string>
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<string name="pref_cat__visuals">Aparência</string>
<string name="pref_cat__network">Rede</string>
<string name="pref_cat__pod_settings">Configurações do Pod</string>
<!-- Visuals -->
<!-- Font size -->
<string name="pref_title__font_size">Tamanho da fonte</string>
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<string name="pref_title__load_images">Carregar imagens</string>
<string name="pref_desc__load_images">Desabilitar o carregamento de imagens para economizar seus créditos</string>
<!-- Proxy -->
<string name="pref_title__proxy_enabled">Habilitar o Proxy</string>
<string name="pref_desc__proxy_enabled">Usar proxy para o tráfego da diáspora para contornar firewalls.\nPode requerer reinicialização</string>
<string name="pref_title__proxy_host">Servidor</string>
<string name="pref_title__proxy_port">Porta</string>
<string name="pref_title__show_exit_button_in_nav_also">Botão de sair na barra de navegação</string>
<string name="pref_desc__show_exit_button_in_nav_also">Adiciona um botão extra » Sair App «na barra de navegação</string>
<!-- Diaspora Settings -->
<string name="pref_title__personal_settings">Configurações pessoais</string>
<string name="pref_desc__personal_settings">Abra suas configurações de usuário diáspora</string>
<string name="pref_title__manage_contacts">Contatos</string>
<string name="pref_desc__manage_contacts">Gerenciar sua lista de contatos</string>
<string name="pref_title__manage_tags">Gerenciar Hashtags</string>
<string name="pref_desc__manage_tags">Adicionar ou excluir as hashtags que você está seguindo</string>
<string name="pref_title__change_account">Alterar conta</string>
<string name="pref_desc__change_account">Apagar dados de sessão local e mudar para outro usuário de outro Pod diáspora</string>
<string name="pref_warning__change_account">Isto apagará todos os dados de sessão e cookies. Você quer realmente mudar sua conta?</string>
<string name="pref_title__clear_cache">Limpar cache</string>
<string name="pref_desc__clear_cache">Limpar o cache do WebView</string>
<string name="pref_desc__intellihide_toolbars">Ocultar as barras de ferramentas superior e inferior automaticamente durante a rolagem</string>
<string name="pref_title__intellihide_toolbars">Barras de ferramentas auto ocultante</string>
<string name="pref_title__append_shared_via_app">Acrescentar compartilhado-por-aviso</string>
<string name="pref_desc__append_shared_via_app">Acrescentar uma referência (\"compartilhado por&#8230;\") a este app para textos compartilhados</string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<string name="shared_by_diaspora_android">*[compartilhado por #DiasporaForAndroid]*</string>
<!-- Application -->
<string name="reload">Atualizar</string>
<string name="new_notifications">Notificação não lida. Quer ler?</string>
<!-- Common Words -->
<string name="settings">Opções</string>
<string name="notifications">Notificações</string>
<string name="conversations">Conversas</string>
<string name="stream">Stream</string>
<string name="profile">Perfil </string>
<string name="aspects">Aspectos</string>
<string name="activities">Atividades</string>
<string name="liked">Curti</string>
<string name="commented">Comentou</string>
<string name="mentions">Menções</string>
<string name="public_">Público</string>
<string name="search">Buscar</string>
<!-- Pod Activity -->
<string name="title_activity_pods">Selecione o Pod</string>
<string name="filter_hint">Insira o domínio do Pod</string>
<string name="confirm_url">Confirme a URL do Pod</string>
<string name="podlist_source_note">OBS: A lista de pods é gerada por pods seguros do https://podupti.me. Você pode adicionar qualquer pod não listado.</string>
<string name="valid_pod">Por favor insira um nome de domínio válido</string>
<string name="podlist_error">Erro: Não conseguimos recuperar a lista de pods!</string>
<string name="no_internet">Desculpe, que você deve estar conectado à Internet para prosseguir</string>
<string name="confirmation">Confirmação</string>
<string name="confirm_pod">Você realmente quer usar\nhttps://%1$s\no seu Pod diáspora?</string>
<string name="confirm_exit">Deseja sair?</string>
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<string name="nav_help_license">Sobre o app | Ajuda</string>
<string name="nav_followed_tags">Tags selecionadas</string>
<string name="nav_public_activities">Atividades públicas</string>
<string name="nav_settings_view">Configurações do App</string>
<string name="share__share_link_as_text">Compartilhar link como texto</string>
<string name="share__share_screenshot">Compartilhar o screenshot da página Web</string>
<string name="share__take_screenshot">Tirar screenshot da página Web</string>
<string name="share__toast_saved_image_to_location">Salvar imagem para</string>
<string name="share__toast_screenshot">Salvar screenshot como:</string>
<string name="share__toast_link_address_copied">Link copiado&#8230;</string>
<string name="new_post">Nova mensagem</string>
<string name="action_go_to_top">Ir para o topo</string>
<string name="action_search_by_tags_or_persons">Procurar por tags ou pessoas</string>
<string name="action_exit_app">Sair do app</string>
<string name="action_toggle_desktop_page">Alternar a exibição móvel/área de trabalho</string>
<string name="action_share_dotdotdot">Compartilhar&#8230;</string>
<string name="search_alert_tag">por tags</string>
<string name="search_alert_people">por pessoas</string>
<string name="search_alert_bypeople_validate_needsomedata">Por favor, adicione um nome</string>
<string name="context_menu_share_link">Compartilhar link</string>
<string name="context_menu_save_image">Salvar imagem</string>
<string name="context_menu_share_image">Compartilhar Imagem</string>
<string name="context_menu_open_external_browser">Abrir em navegador externo&#8230;</string>
<string name="context_menu_copy_link">Copiar link para área de transferência</string>
<!-- More from MainActivity -->
<string name="toast_set_proxy_failed">Aviso: Não foi possível definir proxy de rede&#8230;</string>
<string name="unable_to_load_image">Não é possível carregar a imagem</string>
<string name="all_tags">Todas as tags</string>
<!-- Permissions -->
<string name="permission_denied">Permissão negada.</string>
<string name="permission_granted_try_again">Permissão concedida. Por favor, tente novamente.</string>
<!-- License & help (large amount of text) -->
<string name="help_license">Licença</string>
<string name="help_help">Formatação de markdown</string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<string name="pref_cat__visuals">Внешний вид</string>
<string name="pref_cat__network">Сеть</string>
<string name="pref_cat__pod_settings">Настройки пода</string>
<!-- Visuals -->
<!-- Font size -->
<string name="pref_title__font_size">Размер шрифта</string>
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<string name="pref_title__load_images">Загрузка изображений</string>
<string name="pref_desc__load_images">Отключить загрузку изображений для экономии траффика</string>
<!-- Proxy -->
<string name="pref_title__proxy_enabled">Использовать прокси</string>
<string name="pref_desc__proxy_enabled">Перенаправить трафик Диаспоры в обход брандмауэров.\nМожет потребовать перезапуска</string>
<string name="pref_title__proxy_host">Хост</string>
<string name="pref_title__proxy_port">Порт</string>
<!-- Diaspora Settings -->
<string name="pref_title__personal_settings">Личные настройки</string>
<string name="pref_desc__personal_settings">Открыть настройки аккаунта диаспоры</string>
<string name="pref_title__manage_contacts">Контакты</string>
<string name="pref_desc__manage_contacts">Управление списком контактов</string>
<string name="pref_title__manage_tags">Управление хэштегами</string>
<string name="pref_desc__manage_tags">Добавление и удаление хэштегов, на которые вы подписаны</string>
<string name="pref_title__change_account">Сменить аккаунт</string>
<string name="pref_desc__change_account">Стереть данные локального сеанса и переключиться на другой под/аккаунт Диаспоры</string>
<string name="pref_warning__change_account">Это удалит все файлы cookie и данные сеанса. Вы действительно хотите изменить вашу учетную запись?</string>
<string name="pref_title__clear_cache">Очистить кэш</string>
<string name="pref_desc__clear_cache">Очистить кэш WebView</string>
<string name="pref_desc__intellihide_toolbars">Скрывать верхнюю и нижнюю панели инструментов автоматически во время прокрутки</string>
<string name="pref_title__intellihide_toolbars">Интеллектуальное скрытие панелей инструментов</string>
<string name="pref_title__append_shared_via_app">Присоединять \"Опубликовано из\" к сообщению</string>
<string name="pref_desc__append_shared_via_app">Присоединять ссылку на приложение (\"Опубликовано из&#8230;\") к размещенным записям</string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<string name="shared_by_diaspora_android">*[опубликовано из #DiasporaForAndroid]*</string>
<!-- Application -->
<string name="reload">Перезагрузить</string>
<string name="new_notifications">Непрочитанное уведомление. Хотите прочитать его?</string>
<!-- Common Words -->
<string name="settings">Настройки</string>
<string name="notifications">Уведомления</string>
<string name="conversations">Разговоры</string>
<string name="stream">Поток</string>
<string name="profile">Профиль</string>
<string name="aspects">Аспекты</string>
<string name="activities">Недавняя активность</string>
<string name="liked">Понравившиеся</string>
<string name="commented">Прокомментированные</string>
<string name="mentions">Упоминания</string>
<string name="public_">Публичные</string>
<string name="search">Поиск</string>
<!-- Pod Activity -->
<string name="title_activity_pods">Выберите под</string>
<string name="filter_hint">Введите адрес пода</string>
<string name="confirm_url">Подтвердите URL пода</string>
<string name="podlist_source_note">Примечание: список подов формируется на основании списка безопасных подов с https://podupti.me. Вы можете ввести в поле для ввода любой под не из списка.</string>
<string name="valid_pod">Пожалуйста, введите корректное имя домена</string>
<string name="podlist_error">Ошибка: не удалось получить список подов!</string>
<string name="no_internet">Извините, вы должны быть подключены к Интернету, чтобы продолжить</string>
<string name="confirmation">Подтверждение</string>
<string name="confirm_pod">Вы действительно хотите использовать\nhttps://%1$s\nв качестве вашего пода в Диаспоре?</string>
<string name="confirm_exit">Вы действительно хотите выйти?</string>
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<string name="nav_help_license">О приложении | Справка</string>
<string name="nav_followed_tags">Отслеживаемые хэштеги</string>
<string name="nav_public_activities">Публичная активность</string>
<string name="nav_settings_view">Настройки приложения</string>
<string name="share__share_link_as_text">Разместить ссылку как текст</string>
<string name="share__share_screenshot">Разместить экранный снимок страницы</string>
<string name="share__take_screenshot">Сделать экранный снимок страницы</string>
<string name="share__toast_saved_image_to_location">Сохранение изображения в</string>
<string name="share__toast_screenshot">Сохранение экранного снимка как:</string>
<string name="share__toast_link_address_copied">Адрес ссылки скопирован&#8230;</string>
<string name="action_go_to_top">Наверх</string>
<string name="action_search_by_tags_or_persons">Поиск по тегам или людям</string>
<string name="action_exit_app">Выйти из приложения</string>
<string name="action_toggle_desktop_page">Переключить мобильный/настольный режим просмотра</string>
<string name="action_share_dotdotdot">Поделиться&#8230;</string>
<string name="search_alert_tag">по тегам</string>
<string name="search_alert_people">по людям</string>
<string name="search_alert_bypeople_validate_needsomedata">Пожалуйста добавьте имя</string>
<string name="context_menu_share_link">Разместить адрес ссылки</string>
<string name="context_menu_save_image">Сохранить изображение</string>
<string name="context_menu_share_image">Поделиться изображением</string>
<string name="context_menu_open_external_browser">Открыть во внешнем браузере&#8230;</string>
<string name="context_menu_copy_link">Копировать адрес ссылки в буфер обмена</string>
<!-- More from MainActivity -->
<string name="toast_set_proxy_failed">Предупреждение: Не удалось установить сетевой прокси&#8230;</string>
<string name="unable_to_load_image">Не удается загрузить изображение</string>
<string name="all_tags">Все теги</string>
<!-- Permissions -->
<string name="permissions_screenshot">Необходимо предоставить «Разрешение на доступ к хранилищу» для сохранения скриншотов. После этого вы должны полностью закрыть приложение или перезагрузите телефон. Если вы не разрешаете доступ к хранилищу, но хотите использовать функцию скриншотов позже, можно предоставить разрешение позднее. Затем откройте: Системные настройки - приложения - Диаспора. В разделе разрешения можно предоставить «разрешение на запись в хранилище».</string>
<string name="permissions_image">Необходимо предоставить «Разрешение на доступ к хранилищу» для сохранения изображений. После этого вы должны полностью закрыть приложение или перезагрузите телефон. Если вы не разрешаете доступ к хранилищу, но хотите сохранять изображения позже, можно предоставить разрешение позднее. Затем откройте: Системные настройки - приложения - Диаспора. В разделе разрешения можно предоставить «разрешение на запись в хранилище».</string>
<string name="permission_denied">В разрешении отказано.</string>
<string name="permission_granted_try_again">Разрешение получено. Пожалуйста, попробуйте еще раз.</string>
<!-- License & help (large amount of text) -->
<string name="help_license">Лицензия</string>
<string name="help_help">Форматирование Markdown</string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- Key Names (Untranslatable) -->
<!-- Category Titles -->
<!-- Visuals -->
<!-- Font size -->
<!-- prefix 's' is needed to make this a string array. Otherwise ListPreference would crash -->
<!-- Load images -->
<!-- Proxy -->
<!-- Diaspora Settings -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- App - AppName specific -->
<!-- Application -->
<!-- Common Words -->
<!-- Pod Activity -->
<!-- Drawer, Menu, Toolbar, ContextMenu -->
<!-- More from MainActivity -->
<!-- Permissions -->
<!-- License & help (large amount of text) -->
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -14,6 +14,8 @@
<string name="pref_catkey__network" translatable="false">pref_key_category_network</string>
<string name="pref_key__load_images" translatable="false">pref_key_load_images</string>
<string name="pref_key__clear_cache" translatable="false">pref_key_clear_cache</string>
<string name="pref_key__show_exit_button_in_nav_also" translatable="false">pref_key__show_exit_button_in_nav_also</string>
<string name="pref_key__append_shared_via_app" translatable="false">pref_key_append_shared_via_app</string>
<string name="pref_key__proxy_enabled" translatable="false">pref_key_proxy_enabled</string>
<string name="pref_key__proxy_host" translatable="false">pref_key_proxy_host</string>
@ -21,11 +23,15 @@
<string name="pref_key__proxy_was_enabled" translatable="false">wasProxyEnabled</string>
<string name="pref_key__podprofile_avatar_url" translatable="false">podUserProfile_avatar</string>
<string name="pref_key__podprofile_name" translatable="false">podUserProfile_name</string>
<string name="pref_key__podprofile_id" translatable="false">podUserProfile_guid</string>
<string name="pref_key__podprofile_aspects" translatable="false">podUserProfile_aspects</string>
<string name="pref_key__podprofile_followed_tags" translatable="false">podUserProfile_followedTags</string>
<string name="pref_key__podprofile_unread_message_count" translatable="false">podUserProfile_unreadMessageCount</string>
<string name="pref_key__podprofile_notification_count" translatable="false">podUserProfile_NotificationCount</string>
<!-- Category Titles -->
@ -55,11 +61,13 @@
<!-- Proxy -->
<string name="pref_title__proxy_enabled">Enable Proxy</string>
<string name="pref_desc__proxy_enabled">Proxy Diaspora\'s traffic to circumvent firewalls.\nMay require restart</string>
<string name="pref_title__proxy_host">Host</string>
<string name="pref_title__proxy_port">Port</string>
<string name="pref_title__show_exit_button_in_nav_also">Exit button in navigation slider</string>
<string name="pref_desc__show_exit_button_in_nav_also">Adds an additional »Exit App« button to the navigation slider</string>
<!-- Diaspora Settings -->
<string name="pref_title__personal_settings">Personal settings</string>
<string name="pref_desc__personal_settings">Open your diaspora account settings</string>
@ -83,4 +91,5 @@
<string name="pref_title__append_shared_via_app">Append shared-by-notice</string>
<string name="pref_desc__append_shared_via_app">Append a reference to this app ("shared by…") to shared texts</string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -169,7 +169,6 @@
&lt;i>The splashscreen images can be found on flickr:
https://www.flickr.com/photos/129581906@N06/sets/72157651933980136/with/16594947123.
They were published by \"Lydia\" and are licensed under cc by-nc-sa.&lt;/i></string>
<!-- Recently added - Please move to right section-->
</resources>

View file

@ -24,6 +24,12 @@
android:summary="@string/pref_desc__append_shared_via_app"
android:title="@string/pref_title__append_shared_via_app"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="@string/pref_key__show_exit_button_in_nav_also"
android:summary="@string/pref_desc__show_exit_button_in_nav_also"
android:title="@string/pref_title__show_exit_button_in_nav_also"/>
</PreferenceCategory>
<!-- Diaspora Pod Settings -->

View file

@ -1,4 +1,24 @@
files:
-
source: '/app/src/main/res/values/strings*.xml'
translation: '/app/src/main/res/values-%two_letters_code%/%original_file_name%'
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

1
tools/localization/.gitignore vendored Executable file
View file

@ -0,0 +1 @@
crowdin.yaml

View file

@ -0,0 +1,40 @@
#!/bin/bash
#########################################################
#
# Title
#
# Created by Gregor Santer (gsantner), 2016
# https://gsantner.github.io/
#
#########################################################
#Pfade
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SCRIPTFILE=$(readlink -f $0)
SCRIPTPATH=$(dirname $SCRIPTFILE)
argc=$#
#########################################################
cd "$SCRIPTDIR"
if [ ! -f "crowdin.yaml" ] ; then
echo "project_identifier: diaspora-for-android" > 'crowdin.yaml'
echo "base_path: $(realpath '../../')" >>'crowdin.yaml'
echo "api_key: DONT_PUSH_API_KEY" >>'crowdin.yaml'
cat "../../crowdin.yaml" >> "crowdin.yaml"
echo "# Add all non locality languages here" >> "crowdin.yaml"
echo "# (e.g. enUS, enUK, deCH, deAT will automatically go into the right folder)" >> "crowdin.yaml"
echo "# Otherwise e.g. en would get added into the folder enEN (which is wrong)." >> "crowdin.yaml"
echo "# https://crowdin.com/page/api/language-codes contains supported language codes" >> "crowdin.yaml"
echo "# The first listed ones here are diffently managed by crowdin than on android" >> "crowdin.yaml"
fi
if grep -q "DONT_PUSH" "crowdin.yaml" ; then
echo "Insert API key to crowdin.yaml"
echo "and update folder to the root folder of the repository"
exit
fi
# Load latest translations
crowdin-cli download -b master