Added Cryptpad

Removed Calc
Removed Polls
Refractor
Improved ui state
This commit is contained in:
massi 2022-10-29 02:01:02 +02:00
parent f01c6cb893
commit c4e8167efc
35 changed files with 430 additions and 677 deletions

View File

@ -10,7 +10,7 @@
It also can be used to access all the **Disroot** services that do not require an account:
* Etherpad
* Ethercalc
* Cryptpad
* Calls
* Private bin
* Upload

View File

@ -64,14 +64,11 @@
android:host="forum.disroot.org"
android:scheme="https" />
<data
android:host="calc.disroot.org"
android:host="cryptpad.disroot.org"
android:scheme="https" />
<data
android:host="bin.disroot.org"
android:scheme="https" />
<data
android:host="poll.disroot.org"
android:scheme="https" />
<data
android:host="upload.disroot.org"
android:scheme="https" />

View File

@ -1,11 +1,13 @@
package org.disroot.disrootapp;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class StatusBroadcastReceiver extends BroadcastReceiver {
@SuppressLint("UnsafeProtectedBroadcastReceiver")
@Override
public void onReceive(Context context, Intent intent) {

View File

@ -37,7 +37,7 @@ public class StatusService extends Service {
//status report
public SharedPreferences checkDate;
// URL to get data JSON
static String incidenturl0 ="https://status.disroot.org/issues/index.json";
static String incidentUrl0 ="https://status.disroot.org/issues/index.json";
ArrayList<HashMap<String, String>> messageList;
ArrayList<HashMap<String, String>> getDate;
@ -78,13 +78,13 @@ public class StatusService extends Service {
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
String jsonStrincidents0 = sh.makeServiceCall(incidenturl0);
String jsonStringIdents0 = sh.makeServiceCall( incidentUrl0 );
Log.e(TAG, "Response from url(Service): " + incidenturl0);
Log.e(TAG, "Response from url(Service): " + incidentUrl0 );
if (jsonStrincidents0 != null) {//Incidaetnts page
if (jsonStringIdents0 != null) {//Incidents page
try {
JSONObject jsonObj = new JSONObject(jsonStrincidents0);
JSONObject jsonObj = new JSONObject(jsonStringIdents0);
JSONArray data = jsonObj.getJSONArray("pages");
int a=0;
JSONObject o = data.getJSONObject(a);
@ -114,7 +114,7 @@ public class StatusService extends Service {
return null;
}
else
Log.e(TAG, dateStored+"updated json(service)"+stateDate);
Log.e(TAG, stateDate+"updated json(service)"+dateStored);
}
return null;
@ -137,8 +137,8 @@ public class StatusService extends Service {
String CHANNEL_ID = "3168654312";
String CHANNEL_NAME = "StateNotification";
HttpHandler sh = new HttpHandler();
String jsonStrincidents0 = sh.makeServiceCall(incidenturl0);
JSONObject jsonObj = new JSONObject(jsonStrincidents0);
String jsonStringIdents0 = sh.makeServiceCall( incidentUrl0 );
JSONObject jsonObj = new JSONObject(jsonStringIdents0);
JSONArray data = jsonObj.getJSONArray("pages");
int a=0;
JSONObject o = data.getJSONObject(a);

View File

@ -1,6 +1,7 @@
package org.disroot.disrootapp.ui;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
@ -43,12 +44,7 @@ public class AboutActivity extends AppCompatActivity {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
toolbar.setNavigationOnClickListener( v -> onBackPressed() );
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
/*
@ -59,7 +55,7 @@ public class AboutActivity extends AppCompatActivity {
may be best to switch to a
{@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager() );
// Set up the ViewPager with the sections adapter.
/*
@ -74,16 +70,11 @@ public class AboutActivity extends AppCompatActivity {
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Uri uri = Uri.parse(Constants.URL_SUPPORT);
Intent support = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(support);
// Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
// .setAction("Action", null).show();
}
});
fab.setOnClickListener( view -> {
Uri uri = Uri.parse(Constants.URL_SUPPORT);
Intent support = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(support);
} );
}
@ -137,6 +128,7 @@ public class AboutActivity extends AppCompatActivity {
return fragment;
}
@SuppressLint("SetTextI18n")
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@ -151,67 +143,49 @@ public class AboutActivity extends AppCompatActivity {
final Button ContributeBtn = rootView.findViewById(R.id.ContributeBtn);//ContributeBtn
ContributeBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_SOURCE);
Intent code = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(code);
}
});
ContributeBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_SOURCE);
Intent code = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(code);
} );
final Button TranslateBtn = rootView.findViewById(R.id.TranslateBtn);//TranslateBtn
TranslateBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_TRANSLATE);
Intent translate = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(translate);
}
});
TranslateBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_TRANSLATE);
Intent translate = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(translate);
} );
final Button FeedbackBtn1;//FeedbackBtn1
FeedbackBtn1 = rootView.findViewById(R.id.FeedbackBtn1);
FeedbackBtn1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_BUGS);
Intent feedback1 = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(feedback1);
}
});
FeedbackBtn1.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_BUGS);
Intent feedback1 = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(feedback1);
} );
final Button FeedbackBtn2 = rootView.findViewById(R.id.FeedbackBtn2);//FeedbackBtn2
FeedbackBtn2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_XMPP);
Intent feedback2 = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(feedback2);
}
});
FeedbackBtn2.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_XMPP);
Intent feedback2 = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(feedback2);
} );
break;
case 2:
rootView = inflater.inflate(R.layout.fragment_about_about, container, false);
final ImageButton fDroidBtn = rootView.findViewById(R.id.fDroidBtn);//fDroidBtn
fDroidBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_FDROID);
Intent fDroid = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(fDroid);
}
});
fDroidBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_FDROID);
Intent fDroid = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(fDroid);
} );
final ImageButton homeBtn;//DisrootBtn
homeBtn = rootView.findViewById(R.id.homeBtn);
homeBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_DISROOT);
Intent home = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(home);
}
});
homeBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_DISROOT);
Intent home = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(home);
} );
final TextView PackageName= rootView.findViewById(R.id.PackageName);
PackageName.setText(getString( R.string.id ) + " "+ APPLICATION_ID);
@ -229,13 +203,13 @@ public class AboutActivity extends AppCompatActivity {
rootView = inflater.inflate(R.layout.fragment_about_license, container, false);
//Contributors
//Admins
final TextView contr_text;
contr_text = rootView.findViewById(R.id.admins_text);
contr_text.setMovementMethod( LinkMovementMethod.getInstance());
final TextView contributors_text;
contributors_text = rootView.findViewById(R.id.admins_text);
contributors_text.setMovementMethod( LinkMovementMethod.getInstance());
String admins="";
for(String admin: Contributors.admins) {
admins+="&bull; "+admin+"</a><br>";
contr_text.setText( Html.fromHtml(admins));
contributors_text.setText( Html.fromHtml(admins));
}
//devs
final TextView devs_text;
@ -268,34 +242,25 @@ public class AboutActivity extends AppCompatActivity {
//Buttons
final Button licenseBtn;//LicenseBtn
licenseBtn = rootView.findViewById(R.id.license_button);
licenseBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_LICENSE);
Intent license = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(license);
}
});
licenseBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_LICENSE);
Intent license = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(license);
} );
final TextView disrootBtn;//DisrootBtn
disrootBtn = rootView.findViewById(R.id.disrootUrl);
disrootBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_DISROOT);
Intent disroot = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(disroot);
}
});
final TextView dioBtn;//DiotBtn
disrootBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_DISROOT);
Intent disroot = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(disroot);
} );
final TextView dioBtn;//DioBtn
dioBtn = rootView.findViewById(R.id.dioBtn);
dioBtn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Uri uri = Uri.parse(Constants.URL_DIO);
Intent dio = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(dio);
}
});
dioBtn.setOnClickListener( arg0 -> {
Uri uri = Uri.parse(Constants.URL_DIO);
Intent dio = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(dio);
} );
final TextView htmlToTextView = rootView.findViewById(R.id.ThirdParty);// textview links clickable
htmlToTextView.setMovementMethod( LinkMovementMethod.getInstance());// textview links clickable
break;
@ -308,7 +273,7 @@ public class AboutActivity extends AppCompatActivity {
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public static class SectionsPagerAdapter extends FragmentPagerAdapter {
final FragmentManager fm;

View File

@ -92,8 +92,8 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
WebChromeClient.FileChooserParams chooserParams;
ValueCallback<Uri[]> chooserPathUri;
Button button;
private Button MailBtn,CloudBtn,ForumBtn,ChatBtn,PadBtn,CalcBtn,BinBtn,UploadBtn,SearxBtn,PollsBtn,BoardBtn,CallsBtn,NotesBtn,GitBtn,UserBtn,StateBtn,HowToBtn,AboutBtn;//all buttons
private String email,cloud,forum,etherpad,ethercalc,bin,upload,searx,polls,taiga,user,xmpp,notes,git,cryptpad;
private Button MailBtn,CloudBtn,ForumBtn,ChatBtn,PadBtn, CryptpadBtn,BinBtn,UploadBtn,SearxBtn,BoardBtn,CallsBtn,NotesBtn,GitBtn,UserBtn,StateBtn,HowToBtn,AboutBtn;//all buttons
private String email,cloud,forum,etherpad,bin,upload,searx,taiga,user,xmpp,notes,git,cryptpad;
private CookieManager cookieManager;
private WebView webView;
private DisWebChromeClient disWebChromeClient;
@ -157,11 +157,10 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
BtnPreference = getSharedPreferences( "ForumBtn", Context.MODE_PRIVATE );//forum
BtnPreference = getSharedPreferences( "ChatBtn", Context.MODE_PRIVATE );//chat
BtnPreference = getSharedPreferences( "PadBtn", Context.MODE_PRIVATE );//pad
BtnPreference = getSharedPreferences( "CalcBtn", Context.MODE_PRIVATE );//calc
BtnPreference = getSharedPreferences( "CryptpadBtn", Context.MODE_PRIVATE );//cryptpad
BtnPreference = getSharedPreferences( "BinBtn", Context.MODE_PRIVATE );//bin
BtnPreference = getSharedPreferences( "UploadBtn", Context.MODE_PRIVATE );//upload
BtnPreference = getSharedPreferences( "SearxBtn", Context.MODE_PRIVATE );//search
BtnPreference = getSharedPreferences( "PollsBtn", Context.MODE_PRIVATE );//polls
BtnPreference = getSharedPreferences( "BoardBtn", Context.MODE_PRIVATE );//board
BtnPreference = getSharedPreferences( "CallsBtn", Context.MODE_PRIVATE );//calls
BtnPreference = getSharedPreferences( "NotesBtn", Context.MODE_PRIVATE );//notes
@ -239,11 +238,10 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
ForumBtn = findViewById( R.id.ForumBtn );
ChatBtn = findViewById( R.id.ChatBtn );
PadBtn = findViewById( R.id.PadBtn );
CalcBtn = findViewById( R.id.CalcBtn );
CryptpadBtn = findViewById( R.id.CryptpadBtn );
BinBtn = findViewById( R.id.BinBtn );
UploadBtn = findViewById( R.id.UploadBtn );
SearxBtn = findViewById( R.id.SearxBtn );
PollsBtn = findViewById( R.id.PollsBtn );
BoardBtn = findViewById( R.id.BoardBtn );
CallsBtn = findViewById( R.id.CallsBtn );
NotesBtn = findViewById( R.id.NotesBtn );
@ -278,11 +276,10 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
ForumBtn.setOnLongClickListener( this );
ChatBtn.setOnLongClickListener( this );
PadBtn.setOnLongClickListener( this );
CalcBtn.setOnLongClickListener( this );
CryptpadBtn.setOnLongClickListener( this );
BinBtn.setOnLongClickListener( this );
UploadBtn.setOnLongClickListener( this );
SearxBtn.setOnLongClickListener( this );
PollsBtn.setOnLongClickListener( this );
BoardBtn.setOnLongClickListener( this );
CallsBtn.setOnLongClickListener( this );
NotesBtn.setOnLongClickListener( this );
@ -299,11 +296,10 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
ForumBtn.setOnClickListener( this );
ChatBtn.setOnClickListener( this );
PadBtn.setOnClickListener( this );
CalcBtn.setOnClickListener( this );
CryptpadBtn.setOnClickListener( this );
BinBtn.setOnClickListener( this );
UploadBtn.setOnClickListener( this );
SearxBtn.setOnClickListener( this );
PollsBtn.setOnClickListener( this );
BoardBtn.setOnClickListener( this );
CallsBtn.setOnClickListener( this );
NotesBtn.setOnClickListener( this );
@ -395,8 +391,8 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
}
else startActivity(pad);
break;
case R.id.CalcBtn:
webView.loadUrl(Constants.URL_DisApp_CALC);
case R.id.CryptpadBtn:
webView.loadUrl(Constants.URL_DisApp_CRYPTPAD );
hideDashboard();
break;
case R.id.BinBtn:
@ -411,10 +407,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
webView.loadUrl(Constants.URL_DisApp_SEARX);
hideDashboard();
break;
case R.id.PollsBtn:
webView.loadUrl(Constants.URL_DisApp_POLL);
hideDashboard();
break;
case R.id.BoardBtn:
webView.loadUrl(Constants.URL_DisApp_BOARD);
hideDashboard();
@ -486,8 +478,8 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
case R.id.PadBtn:
showPadInfo();
break;
case R.id.CalcBtn:
showCalcInfo();
case R.id.CryptpadBtn:
showCryptpadInfo();
break;
case R.id.BinBtn:
showBinInfo();
@ -498,9 +490,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
case R.id.SearxBtn:
showSearxInfo();
break;
case R.id.PollsBtn:
showPollsInfo();
break;
case R.id.BoardBtn:
showBoardInfo();
break;
@ -888,16 +877,16 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
builder.show();
}
private void showCalcInfo() {
private void showCryptpadInfo() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false);
builder.setTitle(R.string.CalcTitle);
builder.setMessage(ethercalc +"\n\n"+ getString(R.string.CalcInfo));
builder.setTitle(R.string.CryptpadTitle );
builder.setMessage(cryptpad +"\n\n"+ getString(R.string.CryptpadInfo ));
builder.setPositiveButton(R.string.global_ok, null);
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
webView.loadUrl(Constants.URL_DisApp_CALCHELP);
webView.loadUrl(Constants.URL_DisApp_CRYPTPADHELP );
hideDashboard();
}
});
@ -905,9 +894,9 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
@Override
public void onClick(DialogInterface dialog, int which) {
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
if (findViewById( R.id.CalcBtn).getParent()!=null){
viewGroup.removeView(CalcBtn);
BtnPreference.edit().putBoolean( "CalcBtn", false ).apply();
if (findViewById( R.id.CryptpadBtn ).getParent()!=null){
viewGroup.removeView( CryptpadBtn );
BtnPreference.edit().putBoolean( "CryptpadBtn", false ).apply();
return;}
}
});
@ -993,32 +982,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
builder.show();
}
private void showPollsInfo() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false);
builder.setTitle(R.string.PollsTitle);
builder.setMessage(polls +"\n\n"+ getString(R.string.PollsInfo));
builder.setPositiveButton(R.string.global_ok, null);
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
webView.loadUrl(Constants.URL_DisApp_POLLHELP);
hideDashboard();
}
});
builder.setNeutralButton( R.string.hide, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
if (findViewById( R.id.PollsBtn).getParent()!=null){
viewGroup.removeView(PollsBtn);
BtnPreference.edit().putBoolean( "PollsBtn", false ).apply();
return;}
}
});
builder.show();
}
private void showBoardInfo() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false);
@ -2004,57 +1967,64 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
{
HashMap<String, String> hashmap= (HashMap<String, String>) componentList.get(a);
String hash = hashmap.get("name");
String description = "";
if (hashmap.get("description")!=null &&!hashmap.isEmpty()){//.has("description")&&!hasmap.isNull("description")
description = hashmap.get("description");
}
else {
description ="No Description";
}
switch (hash) {
case "Notes":
notes = hashmap.get("notes");
notes = description;
getNotes(notes);
break;
case "Mail Server":
email = hashmap.get("description");
email = description;
getEmail(email);
break;
case "Cloud":
cloud = hashmap.get("description");
cloud = description;
getCloud(cloud);
break;
case "Forum":
forum = hashmap.get("description");
forum = description;
getForum(forum);
break;
case "Pad":
etherpad = hashmap.get("description");
etherpad = description;
getEtherpad(etherpad);
break;
case "Bin":
bin = hashmap.get("description");
bin = description;
getBin(bin);
break;
case "Upload":
upload = hashmap.get("description");
upload = description;
getUpload(upload);
break;
case "Searx":
searx = hashmap.get("description");
searx = description;
getSearx(searx);
break;
case "Project board":
taiga = hashmap.get("description");
taiga = description;
getTaiga(taiga);
break;
case "User Password management":
user = hashmap.get("description");
user = description;
getUser(user);
break;
case "XMPP Chat server":
xmpp = hashmap.get("description");
xmpp = description;
getXmpp(xmpp);
break;
case "Git":
git = hashmap.get("description");
git = description;
getGit(git);
break;
case "Cryptpad":
cryptpad = hashmap.get("description");
cryptpad = description;
getCryptpad(cryptpad);
break;
}
@ -2074,9 +2044,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
private void getEtherpad(String string){
etherpad = string;
}
private void getEthercalc(String string){
ethercalc = string;
}
private void getBin(String string){
bin = string;
}
@ -2086,9 +2053,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
private void getSearx(String string){
searx = string;
}
private void getPolls(String string){
polls = string;
}
private void getTaiga(String string){
taiga = string;
}

View File

@ -10,7 +10,6 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import org.disroot.disrootapp.R;
@ -44,24 +43,18 @@ public class SettingsActivity extends AppCompatActivity {
Toolbar toolbar = findViewById( R.id.toolbar );
setSupportActionBar( toolbar );
toolbar.setNavigationIcon( R.drawable.ic_arrow_back );
toolbar.setNavigationOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
} );
toolbar.setNavigationOnClickListener( v -> onBackPressed() );
////buttons visiblility preference list
////buttons visibility preference list
BtnPreference = getSharedPreferences( "MailBtn", Context.MODE_PRIVATE );//mail
BtnPreference = getSharedPreferences( "CloudBtn", Context.MODE_PRIVATE );//cloud
BtnPreference = getSharedPreferences( "ForumBtn", Context.MODE_PRIVATE );//forum
BtnPreference = getSharedPreferences( "ChatBtn", Context.MODE_PRIVATE );//chat
BtnPreference = getSharedPreferences( "PadBtn", Context.MODE_PRIVATE );//pad
BtnPreference = getSharedPreferences( "CalcBtn", Context.MODE_PRIVATE );//calc
BtnPreference = getSharedPreferences( "CryptpadBtn", Context.MODE_PRIVATE );//Cryptpad
BtnPreference = getSharedPreferences( "BinBtn", Context.MODE_PRIVATE );//bin
BtnPreference = getSharedPreferences( "UploadBtn", Context.MODE_PRIVATE );//upload
BtnPreference = getSharedPreferences( "SearxBtn", Context.MODE_PRIVATE );//search
BtnPreference = getSharedPreferences( "PollsBtn", Context.MODE_PRIVATE );//polls
BtnPreference = getSharedPreferences( "SearxBtn", Context.MODE_PRIVATE );//searx
BtnPreference = getSharedPreferences( "BoardBtn", Context.MODE_PRIVATE );//Board
BtnPreference = getSharedPreferences( "CallsBtn", Context.MODE_PRIVATE );//calls
BtnPreference = getSharedPreferences( "NotesBtn", Context.MODE_PRIVATE );//notes
@ -70,7 +63,7 @@ public class SettingsActivity extends AppCompatActivity {
BtnPreference = getSharedPreferences( "HowToBtn", Context.MODE_PRIVATE );//howTo
BtnPreference = getSharedPreferences( "AboutBtn", Context.MODE_PRIVATE );//about
//checkboxlist
//checkbox list
checkPrefBox();
}
@ -83,11 +76,10 @@ public class SettingsActivity extends AppCompatActivity {
final CheckBox checkForumBtn = iconSettings.findViewById( R.id.foumBtnPreference );//forum
final CheckBox checkChatBtn = iconSettings.findViewById( R.id.chatBtnPreference );//chat
final CheckBox checkPadBtn = iconSettings.findViewById( R.id.padBtnPreference );//pad
final CheckBox checkCalcBtn = iconSettings.findViewById( R.id.calcBtnPreference );//calc
final CheckBox checkCryptpadBtn = iconSettings.findViewById( R.id.cryptpadBtnPreference );//cryptpad
final CheckBox checkBinBtn = iconSettings.findViewById( R.id.binBtnPreference );//bin
final CheckBox checkUploadBtn = iconSettings.findViewById( R.id.uploadBtnPreference );//upload
final CheckBox checkSearxBtn = iconSettings.findViewById( R.id.searxBtnPreference );//search
final CheckBox checkPollsBtn = iconSettings.findViewById( R.id.pollsBtnPreference );//polls
final CheckBox checkBoardBtn = iconSettings.findViewById( R.id.boardBtnPreference );//board
final CheckBox checkCallsBtn = iconSettings.findViewById( R.id.callsBtnPreference );//calls
final CheckBox checkNotesBtn = iconSettings.findViewById( R.id.notesBtnPreference );//notes
@ -102,11 +94,10 @@ public class SettingsActivity extends AppCompatActivity {
if (BtnPreference.getBoolean( "ForumBtn", true )) checkForumBtn.setChecked( true );//forum
if (BtnPreference.getBoolean( "ChatBtn", true )) checkChatBtn.setChecked( true );//chat
if (BtnPreference.getBoolean( "PadBtn", true )) checkPadBtn.setChecked( true );//pad
if (BtnPreference.getBoolean( "CalcBtn", true )) checkCalcBtn.setChecked( true );//calc
if (BtnPreference.getBoolean( "CryptpadBtn", true )) checkCryptpadBtn.setChecked( true );//cryptpad
if (BtnPreference.getBoolean( "BinBtn", true )) checkBinBtn.setChecked( true );//bin
if (BtnPreference.getBoolean( "UploadBtn", true )) checkUploadBtn.setChecked( true );//upload
if (BtnPreference.getBoolean( "SearxBtn", true )) checkSearxBtn.setChecked( true );//search
if (BtnPreference.getBoolean( "PollsBtn", true )) checkPollsBtn.setChecked( true );//polls
if (BtnPreference.getBoolean( "BoardBtn", true )) checkBoardBtn.setChecked( true );//board
if (BtnPreference.getBoolean( "CallsBtn", true )) checkCallsBtn.setChecked( true );//calls
if (BtnPreference.getBoolean( "NotesBtn", true )) checkNotesBtn.setChecked( true );//notes
@ -116,211 +107,151 @@ public class SettingsActivity extends AppCompatActivity {
if (BtnPreference.getBoolean( "AboutBtn", true )) checkAboutBtn.setChecked( true );//about
//Mail
checkMailBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkMailBtn.isChecked()) {
BtnPreference.edit().putBoolean( "MailBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "MailBtn", false ).apply();
}
checkMailBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkMailBtn.isChecked()) {
BtnPreference.edit().putBoolean( "MailBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "MailBtn", false ).apply();
}
} );
//Cloud
checkCloudBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkCloudBtn.isChecked()) {
BtnPreference.edit().putBoolean( "CloudBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "CloudBtn", false ).apply();
}
checkCloudBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkCloudBtn.isChecked()) {
BtnPreference.edit().putBoolean( "CloudBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "CloudBtn", false ).apply();
}
} );
//forum
checkForumBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkForumBtn.isChecked()) {
BtnPreference.edit().putBoolean( "ForumBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "ForumBtn", false ).apply();
}
checkForumBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkForumBtn.isChecked()) {
BtnPreference.edit().putBoolean( "ForumBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "ForumBtn", false ).apply();
}
} );
//chat
checkChatBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkChatBtn.isChecked()) {
BtnPreference.edit().putBoolean( "ChatBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "ChatBtn", false ).apply();
}
checkChatBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkChatBtn.isChecked()) {
BtnPreference.edit().putBoolean( "ChatBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "ChatBtn", false ).apply();
}
} );
//pad
checkPadBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkPadBtn.isChecked()) {
BtnPreference.edit().putBoolean( "PadBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "PadBtn", false ).apply();
}
checkPadBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkPadBtn.isChecked()) {
BtnPreference.edit().putBoolean( "PadBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "PadBtn", false ).apply();
}
} );
//calc
checkCalcBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkCalcBtn.isChecked()) {
BtnPreference.edit().putBoolean( "CalcBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "CalcBtn", false ).apply();
}
//cryptpad
checkCryptpadBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkCryptpadBtn.isChecked()) {
BtnPreference.edit().putBoolean( "CryptpadBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "CryptpadBtn", false ).apply();
}
} );
//bin
checkBinBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkBinBtn.isChecked()) {
BtnPreference.edit().putBoolean( "BinBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "BinBtn", false ).apply();
}
checkBinBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkBinBtn.isChecked()) {
BtnPreference.edit().putBoolean( "BinBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "BinBtn", false ).apply();
}
} );
//upload
checkUploadBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkUploadBtn.isChecked()) {
BtnPreference.edit().putBoolean( "UploadBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "UploadBtn", false ).apply();
}
checkUploadBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkUploadBtn.isChecked()) {
BtnPreference.edit().putBoolean( "UploadBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "UploadBtn", false ).apply();
}
} );
//search
checkSearxBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkSearxBtn.isChecked()) {
BtnPreference.edit().putBoolean( "SearxBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "SearxBtn", false ).apply();
}
}
} );
//polls
checkPollsBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkPollsBtn.isChecked()) {
BtnPreference.edit().putBoolean( "PollsBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "PollsBtn", false ).apply();
}
checkSearxBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkSearxBtn.isChecked()) {
BtnPreference.edit().putBoolean( "SearxBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "SearxBtn", false ).apply();
}
} );
//board
checkBoardBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkBoardBtn.isChecked()) {
BtnPreference.edit().putBoolean( "BoardBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "BoardBtn", false ).apply();
}
checkBoardBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkBoardBtn.isChecked()) {
BtnPreference.edit().putBoolean( "BoardBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "BoardBtn", false ).apply();
}
} );
//board
checkCallsBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkCallsBtn.isChecked()) {
BtnPreference.edit().putBoolean( "CallsBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "CallsBtn", false ).apply();
}
checkCallsBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkCallsBtn.isChecked()) {
BtnPreference.edit().putBoolean( "CallsBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "CallsBtn", false ).apply();
}
} );
//notes
checkNotesBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkNotesBtn.isChecked()) {
BtnPreference.edit().putBoolean( "NotesBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "NotesBtn", false ).apply();
}
checkNotesBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkNotesBtn.isChecked()) {
BtnPreference.edit().putBoolean( "NotesBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "NotesBtn", false ).apply();
}
} );
//git
checkGitBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkGitBtn.isChecked()) {
BtnPreference.edit().putBoolean( "GitBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "GitBtn", false ).apply();
}
checkGitBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkGitBtn.isChecked()) {
BtnPreference.edit().putBoolean( "GitBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "GitBtn", false ).apply();
}
} );
//user
checkUserBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkUserBtn.isChecked()) {
BtnPreference.edit().putBoolean( "UserBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "UserBtn", false ).apply();
}
checkUserBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkUserBtn.isChecked()) {
BtnPreference.edit().putBoolean( "UserBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "UserBtn", false ).apply();
}
} );
//howTo
checkHowToBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkHowToBtn.isChecked()) {
BtnPreference.edit().putBoolean( "HowToBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "HowToBtn", false ).apply();
}
checkHowToBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkHowToBtn.isChecked()) {
BtnPreference.edit().putBoolean( "HowToBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "HowToBtn", false ).apply();
}
} );
//about
checkAboutBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkAboutBtn.isChecked()) {
BtnPreference.edit().putBoolean( "AboutBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "AboutBtn", false ).apply();
}
checkAboutBtn.setOnCheckedChangeListener( (view, isChecked) -> {
if (checkAboutBtn.isChecked()) {
BtnPreference.edit().putBoolean( "AboutBtn", true ).apply();
} else {
BtnPreference.edit().putBoolean( "AboutBtn", false ).apply();
}
} );
}
@Override //make sure changes are applyed when going back
@Override //make sure changes are applied when going back
public void onBackPressed() {
Intent goHome = new Intent( SettingsActivity.this, MainActivity.class );
SettingsActivity.this.startActivity( goHome );

View File

@ -33,14 +33,13 @@ public class StateActivity extends AppCompatActivity {
Button button;
private String TAG = StateActivity.class.getSimpleName();
private final String TAG = StateActivity.class.getSimpleName();
private ProgressDialog pDialog;
private ListView lv;
// URL to get data JSON
static String url = "https://status.disroot.org/index.json";
//static String url1 = "https://state.disroot.org/api/v1/components?sort=status&page=2";
ArrayList<HashMap<String, String>> stateList;
@ -52,22 +51,13 @@ public class StateActivity extends AppCompatActivity {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
toolbar.setNavigationOnClickListener( v -> onBackPressed() );
button = findViewById(R.id.StateMessageBtn);//StateMessageBtn
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent goState = new Intent(StateActivity.this, StateMessagesActivity.class);
StateActivity.this.startActivity(goState);
}
});
button.setOnClickListener( arg0 -> {
Intent goState = new Intent(StateActivity.this, StateMessagesActivity.class);
StateActivity.this.startActivity(goState);
} );
stateList = new ArrayList<>();
@ -124,7 +114,6 @@ public class StateActivity extends AppCompatActivity {
// Making a request to url and getting response
String jsonStr0 = sh.makeServiceCall(url);
//String jsonStr1 = sh.makeServiceCall(url1);
Log.e(TAG, "Response from url: " + jsonStr0);
@ -162,70 +151,18 @@ public class StateActivity extends AppCompatActivity {
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
runOnUiThread( () -> Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show() );
}
}/*if (jsonStr1 != null) {//next page
try {
JSONObject jsonObj = new JSONObject(jsonStr1);
// Getting JSON Array node
JSONArray data = jsonObj.getJSONArray("data");
// looping through All data
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);
String id = c.getString("id");
String name = c.getString("name");
String description = c.getString("description");
String updated_at = c.getString("updated_at");
String lastUpdated = "Last updated: " + updated_at;
String status_name = c.getString("status_name");
// tmp hash map for single service
HashMap<String, String> service = new HashMap<>();
// adding each child node to HashMap key => value
service.put("id", id);
service.put("name", name);
service.put("description", description);
service.put("updated_at", lastUpdated);
service.put("status_name", status_name);
// adding service to service list
stateList.add(service);
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
}*/else {
}
else {
Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Is your internet connection ok?",
Toast.LENGTH_LONG)
.show();
}
});
runOnUiThread( () -> Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Is your internet connection ok?",
Toast.LENGTH_LONG)
.show() );
}
return null;
}
@ -239,18 +176,18 @@ public class StateActivity extends AppCompatActivity {
//Updating parsed JSON data into ListView
ListAdapter adapter = new SimpleAdapter(
StateActivity.this, stateList, R.layout.list_item,
StateActivity.this, stateList, R.layout.list_services,
new String[]{"name", "description", "category","status"},
new int[]{R.id.name,R.id.description,R.id.lastMod, R.id.status_name})
new int[]{R.id.name,R.id.description,R.id.category, R.id.status})
//Change Color based on Status
//Change Color based on Status
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
//Status
TextView status = v.findViewById(R.id.status_name);
TextView status = v.findViewById(R.id.status);
String statusValue = status.getText().toString();
switch (statusValue) {
case "ok":

View File

@ -33,12 +33,12 @@ import java.util.HashMap;
public class StateMessagesActivity extends AppCompatActivity {
Button button;
private String TAG = StateMessagesActivity.class.getSimpleName();
private final String TAG = StateMessagesActivity.class.getSimpleName();
private ProgressDialog pDialog;
private ListView lv;
// URL to get data JSON
static String incidenturl0 ="https://status.disroot.org/issues/index.json";
static String incidentUrl0 ="https://status.disroot.org/issues/index.json";
ArrayList<HashMap<String, String>> messageList;
ArrayList<HashMap<String, String>> getDate;
@ -51,22 +51,13 @@ public class StateMessagesActivity extends AppCompatActivity {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
toolbar.setNavigationOnClickListener( v -> onBackPressed() );
button = findViewById(R.id.StateBtn);//StateBtn
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent goState = new Intent(StateMessagesActivity.this, StateActivity.class);
StateMessagesActivity.this.startActivity(goState);
}
});
button.setOnClickListener( arg0 -> {
Intent goState = new Intent(StateMessagesActivity.this, StateActivity.class);
StateMessagesActivity.this.startActivity(goState);
} );
messageList = new ArrayList<>();
getDate = new ArrayList<>();
@ -117,13 +108,13 @@ public class StateMessagesActivity extends AppCompatActivity {
HttpHandler sh = new HttpHandler();
// Making a request to url and getting response
String jsonStrincidents0 = sh.makeServiceCall(incidenturl0);
String jsonStringIdents0 = sh.makeServiceCall( incidentUrl0 );
Log.e(TAG, "Response from url: " + incidenturl0);
Log.e(TAG, "Response from url: " + incidentUrl0 );
if (jsonStrincidents0 != null) {//Incidaetnts page
if (jsonStringIdents0 != null) {//Incidents page
try {
JSONObject jsonObj = new JSONObject(jsonStrincidents0);
JSONObject jsonObj = new JSONObject( jsonStringIdents0 );
// Getting JSON Array node
JSONArray data = jsonObj.getJSONArray("pages");
@ -132,10 +123,9 @@ public class StateMessagesActivity extends AppCompatActivity {
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);
//String id = c.getString("id");
String title = c.getString("title");
String link = c.getString("permalink");
Boolean resolved = c.getBoolean( "resolved" );
boolean resolved = c.getBoolean( "resolved" );
String lastMod = c.getString("lastMod");
String lastUpdated = "Last Updated: " + lastMod + '"';
@ -145,7 +135,7 @@ public class StateMessagesActivity extends AppCompatActivity {
// adding each child node to HashMap key => value
service.put("title", title);
service.put("moreInfo", link);
service.put("resolved", resolved.toString());
service.put("resolved", Boolean.toString( resolved ) );
service.put("lastMod", lastUpdated);
// adding service to service list
@ -153,27 +143,17 @@ public class StateMessagesActivity extends AppCompatActivity {
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
runOnUiThread( () -> Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show() );
}
}else {
Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Is your internet connection ok?",
Toast.LENGTH_LONG)
.show();
}
});
runOnUiThread( () -> Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Is your internet connection ok?",
Toast.LENGTH_LONG)
.show() );
}
return null;
}
@ -188,8 +168,8 @@ public class StateMessagesActivity extends AppCompatActivity {
//Updating parsed JSON data into ListView
ListAdapter adapter = new SimpleAdapter(
StateMessagesActivity.this, messageList,
R.layout.list_item, new String[]{"title","moreInfo", "lastMod", "resolved", "status"}, new int[]{R.id.name, R.id.message,
R.id.lastMod, R.id.resolved, R.id.status})
R.layout.list_service_messages, new String[]{"title","moreInfo", "lastMod", "resolved", "status"}, new int[]{R.id.name, R.id.description,
R.id.category, R.id.resolved, R.id.status})
{
@ -200,22 +180,17 @@ public class StateMessagesActivity extends AppCompatActivity {
//Make links work
TextView link = v.findViewById( R.id.message );
TextView link = v.findViewById( R.id.description );
String linkValue = link.getText().toString();
link.setText( R.string.more_info);
v.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Uri uri = Uri.parse( linkValue);
Intent statusLink = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(statusLink);
}
});
v.setOnClickListener( arg0 -> {
Uri uri = Uri.parse( linkValue);
Intent statusLink = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(statusLink);
} );
//Make Last updated translatable
TextView updated = v.findViewById(R.id.lastMod );
TextView updated = v.findViewById(R.id.category );
String updatedValue = updated.getText().toString();
if (updatedValue.startsWith("Last Updated: ")){
updated.setText(updatedValue.replace("Last Updated: ",getText(R.string.LastUpdated)));
@ -224,18 +199,17 @@ public class StateMessagesActivity extends AppCompatActivity {
TextView resolved = v.findViewById(R.id.resolved );
String resolvedValue = resolved.getText().toString();
//Human_status
TextView humanStatus = v.findViewById(R.id.status );
String humanStatusValue = humanStatus.getText().toString();
Log.e("status", "status: "+humanStatusValue);
TextView status = v.findViewById(R.id.status );
Log.e("status", "status: "+resolvedValue);
switch (resolvedValue) {
case "true":
humanStatus.setTextColor(Color.GREEN);
humanStatus.setText(R.string.Fixed);
status.setTextColor(Color.GREEN);
status.setText(R.string.Fixed);
resolved.setVisibility(View.GONE );
break;
case "false":
humanStatus.setTextColor(Color.RED);
humanStatus.setText(R.string.down);
status.setTextColor(Color.RED);
status.setText(R.string.down);
resolved.setVisibility(View.GONE );
break;
}

View File

@ -4,7 +4,6 @@ import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import org.disroot.disrootapp.R;
@ -19,22 +18,16 @@ public class WelcomeActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
imageButton = findViewById(R.id.homeBtn);//Home
imageButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent goHome = new Intent(WelcomeActivity.this, MainActivity.class);
WelcomeActivity.this.startActivity(goHome);
}
});
imageButton.setOnClickListener( arg0 -> {
Intent goHome = new Intent(WelcomeActivity.this, MainActivity.class);
WelcomeActivity.this.startActivity(goHome);
} );
imageButton = findViewById(R.id.fDroidBtn);//Home
imageButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Uri uri = Uri.parse(String.valueOf(Constants.URL_FDROID));
Intent fDroid = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(fDroid);
}
});
imageButton.setOnClickListener( arg0 -> {
Uri uri = Uri.parse( Constants.URL_FDROID );
Intent fDroid = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(uri)));
startActivity(fDroid);
} );
}
}

View File

@ -10,14 +10,11 @@ public class Constants {
public static final long SPLASH_SCREEN_DURATION = 3000;
public static final long SPLASH_SCREEN_INTERVAL = 1000;
public static final String title_activity_state = "StateActivity";
public static final String URL_DisApp_FORUM = "https://forum.disroot.org/";
public static final String URL_DisApp_CALC = "https://calc.disroot.org";
public static final String URL_DisApp_CRYPTPAD = "https://cryptpad.disroot.org/";
public static final String URL_DisApp_BIN = "https://bin.disroot.org";
public static final String URL_DisApp_UPLOAD = "https://upload.disroot.org";
public static final String URL_DisApp_SEARX = "https://search.disroot.org";
public static final String URL_DisApp_POLL = "https://poll.disroot.org";
public static final String URL_DisApp_BOARD = "https://board.disroot.org";
public static final String URL_DisApp_USER = "https://user.disroot.org";
public static final String URL_DisApp_HOWTO = "https://howto.disroot.org";
@ -41,13 +38,11 @@ public class Constants {
public static final String URL_XMPP = "xmpp:disroot@chat.disroot.org?join";
public static final String URL_SUPPORT = "mailto:support@disroot.org";
public static final String URL_DisApp_CLOUDHELP = "https://howto.disroot.org/en/tutorials/cloud/clients/mobile/android";
public static final String URL_DisApp_DIAHELP = "https://disroot.org/services/diaspora";
public static final String URL_DisApp_FORUMHELP = "https://howto.disroot.org/en/tutorials/forum";
public static final String URL_DisApp_PADHELP = "https://howto.disroot.org/en/tutorials/office/pads/padland";
public static final String URL_DisApp_CALCHELP = "https://howto.disroot.org/en/tutorials/office/pads/ethercalc";
public static final String URL_DisApp_CRYPTPADHELP = "https://howto.disroot.org/it/tutorials/office/cryptpad";
public static final String URL_DisApp_BINHELP = "https://howto.disroot.org/en/tutorials/office/bin";
public static final String URL_DisApp_UPLOADHELP = "https://howto.disroot.org/en/tutorials/office/lufi";
public static final String URL_DisApp_POLLHELP = "https://howto.disroot.org/en/tutorials/office/polls";
public static final String URL_DisApp_BOARDHELP = "https://howto.disroot.org/en/tutorials/project_board";
public static final String URL_DisApp_NOTESHELP = "https://howto.disroot.org/en/tutorials/cloud/clients/mobile/android/using-notes";
public static final String URL_DisApp_CALLSHELP = "https://disroot.org/en/services/calls";
@ -64,7 +59,7 @@ public class Constants {
public static final String CallsApp = "org.jitsi.meet";
public static final String GitApp = "org.mian.gitnex";
public static final int[] buttonIDs = new int[] {R.id.MailBtn, R.id.CloudBtn, R.id.ForumBtn,R.id.ChatBtn,R.id.PadBtn,R.id.CalcBtn,R.id.BinBtn,R.id.UploadBtn,R.id.SearxBtn,R.id.PollsBtn,R.id.BoardBtn,R.id.CallsBtn,R.id.NotesBtn,R.id.GitBtn,R.id.UserBtn,R.id.StateBtn,R.id.HowToBtn,R.id.AboutBtn};
public static final int[] buttonIDs = new int[] {R.id.MailBtn, R.id.CloudBtn, R.id.ForumBtn,R.id.ChatBtn,R.id.PadBtn,R.id.CryptpadBtn,R.id.BinBtn,R.id.UploadBtn,R.id.SearxBtn,R.id.BoardBtn,R.id.CallsBtn,R.id.NotesBtn,R.id.GitBtn,R.id.UserBtn,R.id.StateBtn,R.id.HowToBtn,R.id.AboutBtn};
public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;//file upload

View File

@ -1,15 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M36,10.8203C35.4922,10.8203 34.9844,11.0156 34.5938,11.4063L20,26L13.4063,19.4063C12.625,18.625 11.375,18.625 10.5938,19.4063L7.4063,22.5938C6.625,23.375 6.625,24.625 7.4063,25.4063L18.5938,36.5938C19.375,37.375 20.625,37.375 21.4063,36.5938L40.5938,17.4063C41.375,16.625 41.375,15.375 40.5938,14.5938L37.4063,11.4063C37.0156,11.0156 36.5078,10.8203 36,10.8203z"
android:strokeAlpha="1"
android:strokeLineJoin="miter"
android:strokeWidth="1.72236323"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillAlpha="0.99215686"
android:strokeLineCap="butt"/>
</vector>

View File

@ -137,12 +137,12 @@
app:fontFamily="@font/open_sans_regular" />
<Button
android:id="@+id/CalcBtn"
android:id="@+id/CryptpadBtn"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_calc"
android:text="@string/action_calc"
android:drawableTop="@drawable/ic_cryptpad"
android:text="@string/action_cryptpad"
android:textColor="@color/white"
app:fontFamily="@font/open_sans_regular" />
@ -176,16 +176,6 @@
android:textColor="@color/white"
app:fontFamily="@font/open_sans_regular" />
<Button
android:id="@+id/PollsBtn"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_poll"
android:text="@string/action_poll"
android:textColor="@color/white"
app:fontFamily="@font/open_sans_regular" />
<Button
android:id="@+id/BoardBtn"
style="?android:attr/borderlessButtonStyle"

View File

@ -146,13 +146,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/borderlessButtonStyle"
android:text="@string/action_calc"
android:text="@string/action_cryptpad"
android:textColor="@color/gray"
android:drawableTint="@color/gray"
android:drawableStart="@drawable/ic_calc"
android:drawableLeft="@drawable/ic_calc"/>
android:drawableStart="@drawable/ic_cryptpad"
android:drawableLeft="@drawable/ic_cryptpad"/>
<CheckBox
android:id="@+id/calcBtnPreference"
android:id="@+id/cryptpadBtnPreference"
android:button="@drawable/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -218,26 +218,6 @@
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"/>
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/DisTheme.Settings">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/borderlessButtonStyle"
android:text="@string/action_poll"
android:textColor="@color/gray"
android:drawableTint="@color/gray"
android:drawableStart="@drawable/ic_poll"
android:drawableLeft="@drawable/ic_poll"/>
<CheckBox
android:id="@+id/pollsBtnPreference"
android:button="@drawable/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"/>
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -213,7 +213,7 @@
style="@android:style/TextAppearance.DeviceDefault.Large"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/thirdparty"
android:text="@string/thirdParty"
android:layout_marginBottom="8dp"/>
<TextView
@ -221,7 +221,7 @@
android:textAppearance="@style/TextAppearance.AppCompat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/thirdpartyText"/>
android:text="@string/thirdPartyText"/>
</LinearLayout>
</android.support.v7.widget.CardView>

View File

@ -15,33 +15,6 @@
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#ffffff" />
<TextView
android:id="@+id/lastMod"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#ffffff"/>
<TextView
android:id="@+id/status_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#49e13f"
android:textStyle="bold" />
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff" />
<TextView
android:id="@+id/resolved"
android:layout_width="wrap_content"
@ -54,4 +27,18 @@
android:layout_height="wrap_content"
android:textColor="#ffffff" />
<TextView
android:id="@+id/category"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#ffffff"/>
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#ffffff" />
</LinearLayout>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/activity_horizontal_margin">
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:paddingTop="6dip"
android:textColor="@color/bg_primary_blue_dark"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#ffffff" />
<TextView
android:id="@+id/category"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#ffffff"/>
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff" />
</LinearLayout>

View File

@ -7,10 +7,9 @@
<string name="action_forum">Forum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Private bin</string>
<string name="action_upload">Upload</string>
<string name="action_poll">Umfrage</string>
<string name="action_state">Status</string>
<string name="action_howto">How to</string> <!--best transl will be tutorial, but inconsistent then-->
<string name="action_about">Über</string>
@ -28,7 +27,7 @@
<string name="CloudInfoTitle">Nextcloud Einstellungen</string>
<string name="CloudInfo">Sichere und synchronisiere Deine Daten. Mit Nextcloud kannst du Dateien, Kalender, Kontakte und mehr mit Anderen teilen.\n\nHost:\n https://cloud.disroot.org\n\nBenutzername:\n "dein Disroot Benutzername"\n\nPasswort:\n "dein Disroot Passwort".</string>
<string name="WelcomeTitle">Willkommen</string>
<string name="WelcomeInfo">Disroot ist eine Plattform, auf der Online-Dienste angeboten werden, die auf den Prinzipien von Freiheit, Privatsphäre, Gemeinschaft und Dezentralisierung basieren.\nDiese App ist wie ein Schweizer Taschenmesser für die Disroot-Plattform, von der Community für die Community.\nAuch wenn du keinen Disroot-Account hast, kannst Du diese App trotzdem nutzen, um auf alle Disroot-Dienste zuzugreifen, die kein Benutzerkonto erfordern:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (separater Diaspora Account benötigt)\n\nDiese App wird Dich eventuell darum bitten, weitere Apps zu installieren. Wir empfehlen F-Droid zu installieren - einen kostenlosen und quelloffenen App-Katalog - da nicht alle verwendeten Apps im Google Play Store zu finden sind und F-Droid außerdem mehr auf Datenschutz ausgerichtet ist (kein Tracking, kein Account erforderlich). Du kannst F-Droid herunterladen, indem Du auf das F-Droid-Symbol klickst.\n</string>
<string name="WelcomeInfo">Disroot ist eine Plattform, auf der Online-Dienste angeboten werden, die auf den Prinzipien von Freiheit, Privatsphäre, Gemeinschaft und Dezentralisierung basieren.\nDiese App ist wie ein Schweizer Taschenmesser für die Disroot-Plattform, von der Community für die Community.\nAuch wenn du keinen Disroot-Account hast, kannst Du diese App trotzdem nutzen, um auf alle Disroot-Dienste zuzugreifen, die kein Benutzerkonto erfordern:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (separater Diaspora Account benötigt)\n\nDiese App wird Dich eventuell darum bitten, weitere Apps zu installieren. Wir empfehlen F-Droid zu installieren - einen kostenlosen und quelloffenen App-Katalog - da nicht alle verwendeten Apps im Google Play Store zu finden sind und F-Droid außerdem mehr auf Datenschutz ausgerichtet ist (kein Tracking, kein Account erforderlich). Du kannst F-Droid herunterladen, indem Du auf das F-Droid-Symbol klickst.\n</string>
<string name="help">Hilfe</string>
<string name="license">Lizenz</string>
<string name="action_settings">Einstellungen</string>
@ -39,8 +38,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Disroot Community (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Libraries von Drittanbietern</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckChangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Libraries von Drittanbietern</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckChangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">sonstiges</string>
<string name="miscDio">Wir haben Diolinux als Grundlage benutzt, um diese App zu entwickeln. Probier es selbst aus, es ist freie, quelloffene Software!</string>
<string name="miscDioBtn">Weitere Informationen</string>
@ -69,8 +68,8 @@
<string name="PadTitle">EtherPad Info</string>
<string name="ChatTitle">XMPP Einstellungen\n</string>
<string name="ChatInfo">Conversations ist ein Messenger für die eine sichere (E2EE mit OMEMO und PGP) und datenschutzfeundliche Kommunikation mit Kontakten und Gruppen. Er nutzt das quelloffene XMPP-Protokoll das eine dezentrale Server-Infrastruktur erlaubt.\n\nJabber ID :\n Deine_Disroot_email_addresse\n\nPasswort :\n Dein_Disroot_passwort</string>
<string name="CalcInfo">Mit EtherCalc zusammen an Listen, Formularen, Datensätzen, etc. arbeiten.\nKeine Registrierung notwendig.</string>
<string name="CalcTitle">EtherCalc Info</string>
<string name="CryptpadInfo">Eine privat gestaltete Alternative zu den gängigen Office-Tools.\nKeine Registrierung notwendig.</string>
<string name="CryptpadTitle">Cryptpad Info</string>
<string name="BinTitle">PrivateBin Help</string>
<string name="BinInfo">PrivateBin ist ein quelloffener Online-Speicher-Service mit Diskussionsforum. Die Daten werden im Browser verschlüsselt und entschlüsselt, so dass der Server keine Kenntnis über die hochgeladenen Daten hat. Füge einfach einen Text ein, klicke auf "Senden" und teile die URL. Es können zusätzlich ein Passwort und ein Ablaufzeitpunkt gewählt werden.\nKeine Registrierung notwendig.</string>
<string name="UploadTitle">Upload (powered by Lufi) Info</string>
@ -127,7 +126,7 @@
<string name="Cloud">Cloud</string>
<string name="PerformanceIssues">Performance Probleme</string>
<string name="Notification">Keine Probleme</string>
<string name="Notificationissues">Bei einigen Systemen treten Probleme auf</string>
<string name="NotificationIssues">Bei einigen Systemen treten Probleme auf</string>
<string name="state_messages_btn">Zeige Status-Nachrichten</string>
<string name="state_btn">Zeige Service-Status</string>
<string name="ScheduledAt">Geplant am: \</string>
@ -170,5 +169,7 @@
<string name="translatorsTitle">Übersetzer:</string>
<string name="artworksTitle">Künstlerische Gestaltung:</string>
<string name="Fixed">Behoben</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -7,10 +7,9 @@
<string name="action_forum">Foro</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Pastebin</string>
<string name="action_upload">Subir</string>
<string name="action_poll">Encuestas</string>
<string name="action_state">Estado</string>
<string name="action_howto">Guías</string>
@ -32,7 +31,7 @@
<string name="CloudInfoTitle">Configuración de Nextcloud:</string>
<string name="CloudInfo">Sincroniza y comparte tus archivos, calendarios, contactos y más.\n\nHost:\n https://cloud.disroot.org\n\nUsuarix: tu_usuarix_de_disroot\nContraseña:tu_contraseña_de_Disroot.</string>
<string name="WelcomeTitle">Bienvenidx</string>
<string name="WelcomeInfo">Disroot es una plataforma que provee servicios en línea basados en los principios de libertad, privacidad, federación y descentralización.\nEsta aplicación es como la navaja suiza de la plataforma, hecha por la comunidad, para la comunidad.\nSi no tienes una cuenta de Disroot, igual puedes usarla para acceder a aquellos servicios que no requieran de una:\nEtherpad, Ethercalc, Privatebin, Upload, Encuentas, Searx y Diaspora* (requiere tener cuenta solo de Diaspora*)\nLa aplicación podría solicitarte la instalación de otras adicionales, y no todas pueden encontrarse en la Tienda de Aplicaciones. Nosotros recomendamos instalar F-Droid. Si no la tienes, puedes descargarla tocando el logo de F-Droid.\n</string>
<string name="WelcomeInfo">Disroot es una plataforma que provee servicios en línea basados en los principios de libertad, privacidad, federación y descentralización.\nEsta aplicación es como la navaja suiza de la plataforma, hecha por la comunidad, para la comunidad.\nSi no tienes una cuenta de Disroot, igual puedes usarla para acceder a aquellos servicios que no requieran de una:\nEtherpad, Cryptpad, Privatebin, Upload, Encuentas, Searx y Diaspora* (requiere tener cuenta solo de Diaspora*)\nLa aplicación podría solicitarte la instalación de otras adicionales, y no todas pueden encontrarse en la Tienda de Aplicaciones. Nosotros recomendamos instalar F-Droid. Si no la tienes, puedes descargarla tocando el logo de F-Droid.\n</string>
<string name="help">Ayuda</string>
@ -51,8 +50,8 @@
<string name="disrootUrl"><a href = "https://disroot.org">https://disroot.org</a></string>
<string name="disroot"> * Comunidad de Disroot (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Librerías de Terceros</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Librerías de Terceros</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Misceláneas</string>
<string name="miscDio">Utilizamos Diolinx como base para la creación de esta aplicación. Puedes chequearla, también es software libre.</string>
<string name="miscDioBtn">Más info</string>
@ -81,8 +80,8 @@
<string name="PadTitle">Etherpad:\nEscribe artículos, anuncios de prensa, listas de pendientes, etc., junto a amigxs, compañerxs de estudios o colegas, todxs trabajando en el mismo documento al mismo tiempo.</string>
<string name="ChatTitle">Configuración de XMPP\n</string>
<string name="ChatInfo">Mensajería instantánea descentralizada y federada.\nID de Jabber: tu_correo@disroot.org\nContraseña: tu_contraseña_de_Disroot</string>
<string name="CalcInfo">EtherCalc</string>
<string name="CalcTitle">EtherCalc: Trabaja colaborativemente en inventarios, formularios de encuestas, gestión de listas, sesiones de lluvia de ideas y más.</string>
<string name="CryptpadInfo">Cryptpad</string>
<string name="CryptpadTitle">Cryptpad: TUna alternativa privada al diseño de las herramientas ofimáticas más populares.\n No es necesario registrarse.</string>
<string name="BinTitle">PrivateBin</string>
<string name="BinInfo">Pastebin de código abierto en línea y tablero de discusión. La información es cifrada/descifrada en el navegador, de esa manera el servidor tiene cero conocimiento de los archivos alojados. Solo pega un texto, haz click en “Enviar”, establece la fecha de vencimiento (entre otras funcionalidades) y comparte la dirección URL.</string>
<string name="UploadTitle">Subir (Impulsado por Lufi)</string>
@ -138,7 +137,7 @@
<string name="Cloud">Nube</string>
<string name="PerformanceIssues">Problemas de desempeño</string>
<string name="Notification">Sin problemas</string>
<string name="Notificationissues">Algunos sistemas están experimentando problemas</string>
<string name="NotificationIssues">Algunos sistemas están experimentando problemas</string>
<string name="state_messages_btn">Mostrar mensajes de Estado</string>
<string name="state_btn">Mostrar Estado del servicio</string>
<string name="ScheduledAt">Programado para:</string>
@ -179,4 +178,7 @@
<string name="translatorsTitle">Traductorxs:</string>
<string name="artworksTitle">Arte:</string>
<string name="Fixed">Arreglado</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -8,11 +8,10 @@
<string name="action_forum">Forum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Private bin</string>
<string name="action_upload">Téléverser</string>
<string name="action_searx">Search</string><!--needs update:20/10/2020-->
<string name="action_poll">Sondage</string>
<string name="action_board">Project board</string><!--needs update:20/10/2020-->
<string name="action_user">Account</string><!--needs update:20/10/2020-->
<string name="action_state">État des services</string>
@ -58,7 +57,7 @@
\nMot de passe :
\n votre_mot_de_passe_disroot.</string>
<string name="WelcomeTitle">Bienvenue</string>
<string name="WelcomeInfo">Disroot est une plate-forme fournissant des services en ligne basés sur les principes de liberté, de confidentialité, de fédération et de décentralisation.\nCette application est comme votre couteau suisse vers la plate-forme Disroot, faite par la communauté pour la communauté. Si vous n\'avez pas un compte Disroot vous pouvez toujours utiliser cette application pour accéder aux services Disroot qui n\'en nécessitent pas:\n \ \ \ • Etherpad\n \ \ \ • Ethercalc\n \ \ \ • Private bin\n \ \ \ • Téléverser\n \ \ \ • Sondage\n \ \ \ • Searx\n \ \ \ • Diaspora* (nécessite un compte Diaspora)\n\nL\'application peut vous demander d\'installer des applications supplémentaires. Nous vous recommandons fortement d\'installer F-Droid - un catalogue d\'applications gratuit et open source - car toutes les applications ne se trouvent pas sur le Play Store de Google et F-Droid est plus orienté vers la confidentialité (pas de suivi, pas besoin de compte) vous pouvez le télécharger en tapant sur l\'icône F-droid.\n</string>
<string name="WelcomeInfo">Disroot est une plate-forme fournissant des services en ligne basés sur les principes de liberté, de confidentialité, de fédération et de décentralisation.\nCette application est comme votre couteau suisse vers la plate-forme Disroot, faite par la communauté pour la communauté. Si vous n\'avez pas un compte Disroot vous pouvez toujours utiliser cette application pour accéder aux services Disroot qui n\'en nécessitent pas:\n \ \ \ • Etherpad\n \ \ \ • Cryptpad\n \ \ \ • Private bin\n \ \ \ • Téléverser\n \ \ \ • Sondage\n \ \ \ • Searx\n \ \ \ • Diaspora* (nécessite un compte Diaspora)\n\nL\'application peut vous demander d\'installer des applications supplémentaires. Nous vous recommandons fortement d\'installer F-Droid - un catalogue d\'applications gratuit et open source - car toutes les applications ne se trouvent pas sur le Play Store de Google et F-Droid est plus orienté vers la confidentialité (pas de suivi, pas besoin de compte) vous pouvez le télécharger en tapant sur l\'icône F-droid.\n</string>
<string name="help">Aide</string>
<string name="license">Licence d\'utilisation</string>
@ -76,8 +75,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot">* La communauté Disroot (Disroot) :</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Librairies tierces</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Licence d\'utilisation Apache 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>Licence d\'utilisation GNU General Public v3.0</string>
<string name="thirdParty">Librairies tierces</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Licence d\'utilisation Apache 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>Licence d\'utilisation GNU General Public v3.0</string>
<string name="misc">Divers</string>
<string name="miscDio">Nous avons utilisé Diolinx comme base de départ pour créer cette application. Allez voir, c\'est également un logiciel libre !</string>
<string name="miscDioBtn">En savoir plus</string>
@ -112,8 +111,8 @@
<string name="PadTitle">Info EtherPad</string>
<string name="ChatTitle">Paramètres XMPP\n</string>
<string name="ChatInfo">Conversations est une application de messagerie instantanée décentralisée et fédérée, gratuite, standard et open-source, pour chatter avec des contacts ou au sein de groupes.\n\nJabber ID :\n Votre adresse email Disroot complète\n\nMot de passe :\n votre mot de passe Disroot</string>
<string name="CalcInfo">Avec EtherCalc, travaillez ensemble sur des inventaires, des formulaires d\'enquête, des listes, des sessions de brainstorming et plus encore !\nAucune inscription n\'est requise.</string>
<string name="CalcTitle">Info EtherCalc</string>
<string name="CryptpadInfo">Une alternative privée aux outils de bureautique populaires.\nAucune inscription n\'est requise.</string>
<string name="CryptpadTitle">Info Cryptpad</string>
<string name="BinTitle">Aide PrivateBin</string>
<string name="BinInfo">PrivateBin est un pastebin et un forum de discussion en ligne open-source. Les données sont chiffrées et déchiffrées dans le navigateur afin que le serveur n\'ait aucune connaissance des données hébergées. Il suffit de coller un texte, de cliquer sur "Envoyer", de définir l\'expiration (et d\'autres fonctionnalités) et de partager l\'URL.\nAucune inscription n\'est requise.</string>
<string name="UploadTitle">Info Téléverser (propulsé par Lufi)</string>
@ -170,7 +169,7 @@
<string name="Cloud">Cloud</string>
<string name="PerformanceIssues">Problèmes de performance</string>
<string name="Notification">Aucun problème</string>
<string name="Notificationissues">Certains systèmes connaissent des problèmes</string>
<string name="NotificationIssues">Certains systèmes connaissent des problèmes</string>
<string name="state_messages_btn">Afficher les messages d\'état</string>
<string name="state_btn">Afficher l\'état de service</string>
<string name="ScheduledAt">Programmé le :</string>
@ -216,4 +215,7 @@
<string name="translatorsTitle">Traducteurs:</string>
<string name="artworksTitle">Illustrations:</string>
<string name="Fixed">Résolu</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -7,10 +7,9 @@
<string name="action_forum">Forum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Private bin</string>
<string name="action_upload">Upload</string>
<string name="action_poll">Poll</string>
<string name="action_state">Stato</string>
<string name="action_howto">Manuali</string>
<string name="action_about">Info su</string>
@ -28,7 +27,7 @@
<string name="CloudInfoTitle">Impostazioni Nextcloud</string>
<string name="CloudInfo">Tieni i tuoi dati sincronizzati e al sicuro. Con Nextcloud puoi condividere file, calendari, contatti e altro ancora.\n\nHost:\n https://cloud.disroot.org\n\nnnome utente:\n il_tuo_nome_utente_disroot\n\nPassword:\n la_tua_password_disroot</string>
<string name="WelcomeTitle">Benvenuto</string>
<string name="WelcomeInfo">Disroot è una piattaforma che fornisce servizi online basati su principi di libertà, privacy, federazione e decentralizzazione.\nQuesta applicazione è come il tuo coltellino svizzero per la piattaforma Disroot, fatta dalla comunità per la comunità.\nSe non hai un account Disroot puoi comunque utilizzare questa app per accedere a tutti i servizi Disroot che non richiedono un account:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (richiede un conto solo per Diaspora)\n\nLa app potrebbe richiedere l\'installazione di applicazioni aggiuntive. Si consiglia vivamente di installare F-Droid - una app sotre gratuita e open source - in quanto non tutte le applicazioni possono essere trovate su Google Play Store e F-Droid è più orientato alla privacy (nessun tracking, nessun account necessario) è possibile scaricarlo toccando l\'icona F-Droid.\n</string>
<string name="WelcomeInfo">Disroot è una piattaforma che fornisce servizi online basati su principi di libertà, privacy, federazione e decentralizzazione.\nQuesta applicazione è come il tuo coltellino svizzero per la piattaforma Disroot, fatta dalla comunità per la comunità.\nSe non hai un account Disroot puoi comunque utilizzare questa app per accedere a tutti i servizi Disroot che non richiedono un account:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (richiede un conto solo per Diaspora)\n\nLa app potrebbe richiedere l\'installazione di applicazioni aggiuntive. Si consiglia vivamente di installare F-Droid - una app sotre gratuita e open source - in quanto non tutte le applicazioni possono essere trovate su Google Play Store e F-Droid è più orientato alla privacy (nessun tracking, nessun account necessario) è possibile scaricarlo toccando l\'icona F-Droid.\n</string>
<string name="help">Aiuto</string>
<string name="license">Licenza</string>
<string name="action_settings">Impostazioni</string>
@ -39,8 +38,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Comunità Disroot (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Librerie di terze parti</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Librerie di terze parti</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Varie</string>
<string name="miscDio">Abbiamo usato Diolinx come base di partenza per creare questa applicazione. Vai a dare un\'occhiata, è anche software libero!</string>
<string name="miscDioBtn">Dimmi di più</string>
@ -69,8 +68,8 @@
<string name="PadTitle">Info EtherPad</string>
<string name="ChatTitle">Impostazioni XMPP\n</string>
<string name="ChatInfo">Conversations è una app gratuita, standard e open-source, decentralizzata e federata di messaggistica istantanea per chattare con i contatti o all\'interno di gruppi.\n\nID Jabber :\n Il tuo indirizzo e-mail completo Disroot\n\nPassword :\n La tua password di Disroot</string>
<string name="CalcInfo">Con EtherCalc puoi lavorare insieme su inventari, moduli di indagine, gestione degli elenchi, sessioni di brainstorming e molto altro ancora!\nNon è richiesta alcuna registrazione.</string>
<string name="CalcTitle">Info EtherCalc</string>
<string name="CryptpadInfo">Un\'alternativa privata di design ai più diffusi strumenti per l\'ufficio.\nNon è richiesta alcuna registrazione.</string>
<string name="CryptpadTitle">Info Cryptpad</string>
<string name="BinTitle">Aiuto PrivateBin</string>
<string name="BinInfo">PrivateBin è un pastebin online open-source e un forum di discussione. I dati sono criptati/decodificati nel browser in modo che il server non abbia alcuna conoscenza dei dati ospitati. Basta incollare un testo, fare clic su “Invia”, impostare la scadenza (e altre caratteristiche) e condividere l\'URL.\nNon è richiesta alcuna registrazione.</string>
<string name="UploadTitle">Info Upload (powered by Lufi)</string>
@ -126,7 +125,7 @@
<string name="Cloud">Cloud</string>
<string name="PerformanceIssues">Problemi di performanza</string>
<string name="Notification">Nessun problema con i servizi</string>
<string name="Notificationissues">Alcuni sistemi stanno avendo dei problemi</string>
<string name="NotificationIssues">Alcuni sistemi stanno avendo dei problemi</string>
<string name="state_messages_btn">Mostra messaggi di stato</string>
<string name="state_btn">Mostra stato dei servizi</string>
<string name="ScheduledAt">In programma il: \</string>
@ -167,4 +166,7 @@
<string name="translatorsTitle">Traduttori:</string>
<string name="artworksTitle">Artwork:</string>
<string name="Fixed">Risolto</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -7,10 +7,9 @@
<string name="action_forum">Forum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Private bin</string>
<string name="action_upload">Upload</string>
<string name="action_poll">Poll</string>
<string name="action_state">Status</string>
<string name="action_howto">How to</string>
@ -32,7 +31,7 @@
<string name="CloudInfoTitle">Nextcloud Instellingen</string>
<string name="CloudInfo">Houd uw gegevens gesynchroniseerd en veilig. Met Nextcloud kunt u uw bestanden, kalenders, contactpersonen en meer delen.\n\nHost:\n https://cloud.disroot.org\n\nGebruikersnaam:\n uw_disroot_gebruikersnaam\n\nWachtwoord:\n uw_disroot_wachtwoord.</string>
<string name="WelcomeTitle">Welkom</string>
<string name="WelcomeInfo">Disroot is een platform dat online diensten aanbiedt op basis van de principes van vrijheid, privacy, federatie en decentralisatie.\n Deze app is als een Zwitsers mes voor het Disroot platform, gemaakt door de gemeenschap voor de gemeenschap.\nAls je geen Disroot account hebt kun je deze app nog steeds gebruiken om toegang te krijgen tot alle Disroot diensten dat geen account vereist:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (vereist een Diaspora elleen account)\n\nDe app kan vereisen dat u extra apps installeert. We raden u ten zeerste aan om F-Droid - een gratis en open source app marktplaats te installeren, omdat niet alle apps te vinden zijn in de Play Store van Google en F-Droid meer privacy georiënteerd is (geen tracking, geen account nodig), u kunt het downloaden door op het F-droid icoontje te tikken.\n</string>
<string name="WelcomeInfo">Disroot is een platform dat online diensten aanbiedt op basis van de principes van vrijheid, privacy, federatie en decentralisatie.\n Deze app is als een Zwitsers mes voor het Disroot platform, gemaakt door de gemeenschap voor de gemeenschap.\nAls je geen Disroot account hebt kun je deze app nog steeds gebruiken om toegang te krijgen tot alle Disroot diensten dat geen account vereist:\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (vereist een Diaspora elleen account)\n\nDe app kan vereisen dat u extra apps installeert. We raden u ten zeerste aan om F-Droid - een gratis en open source app marktplaats te installeren, omdat niet alle apps te vinden zijn in de Play Store van Google en F-Droid meer privacy georiënteerd is (geen tracking, geen account nodig), u kunt het downloaden door op het F-droid icoontje te tikken.\n</string>
<string name="help">Help</string>
<string name="license">Licentie</string>
@ -51,8 +50,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Disroot Gemeenschap (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Third-Party Libraries</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache Licentie 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Third-Party Libraries</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache Licentie 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Diversen</string>
<string name="miscDio">We hebben Diolinx als uitgangspunt gebruikt om deze app te maken. Ga eens kijken, het is ook vrije software!</string>
<string name="miscDioBtn">Vertel me meer</string>
@ -82,8 +81,8 @@
<string name="ChatTitle">XMPP Instellingen\n</string>
<string name="ChatInfo">Conversations is een gratis, standaard en open-source gedecentraliseerde en gefedereerde instant messaging applicatie voor chatten met contacten of binnen groepen.
\n\nJabber ID :\n Jou Volledig Disroot email adres\n\nWachtwoord :\n Jou Disroot wachtwoord</string>
<string name="CalcInfo">Met EtherCalc werken we samen aan inventarissen, enquêteformulieren, lijstbeheer, brainstormsessies en meer.\nEr is geen registratie vereist.</string>
<string name="CalcTitle">EtherCalc Info</string>
<string name="CryptpadInfo">Een privé-alternatief voor populaire kantoortools.\nEr is geen registratie vereist.</string>
<string name="CryptpadTitle">Cryptpad Info</string>
<string name="BinTitle">PrivateBin Help</string>
<string name="BinInfo">PrivateBin is een open-source online pastebin en discussiebord. De gegevens worden gecodeerd/gedecodeerd in de browser, zodat de server geen kennis heeft van gehoste gegevens. Plak gewoon een tekst, klik op "Verzenden", stel de vervaldatum in (en andere functies) en deel de URL.\nEr is geen registratie vereist.</string>
<string name="UploadTitle">Upload (powered by Lufi) Info</string>
@ -139,7 +138,7 @@
<string name="Cloud">Cloud</string>
<string name="PerformanceIssues">Prestatieproblemen</string>
<string name="Notification">Geen problemen</string>
<string name="Notificationissues">Sommige systemen ondervinden problemen</string>
<string name="NotificationIssues">Sommige systemen ondervinden problemen</string>
<string name="state_messages_btn">Toon statusberichten</string>
<string name="state_btn">Toon Service Status</string>
<string name="ScheduledAt">Gepland op: \</string>
@ -180,4 +179,7 @@
<string name="translatorsTitle">Vertalers:</string>
<string name="artworksTitle">Artwork:</string>
<string name="Fixed">Opgelost</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -7,11 +7,10 @@
<string name="action_forum">Fórum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Pad</string>
<string name="action_calc">Calc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Paste bin</string>
<string name="action_upload">Upload</string>
<string name="action_searx">Pesquisa</string>
<string name="action_poll">Sondagens</string>
<string name="action_board">Quadro de projetos</string>
<string name="action_state">Status</string>
<string name="action_howto">Tutorial</string>
@ -44,8 +43,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Comunidade Disrootu (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Bibliotecas de Terceiros</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckHistórico de modificações: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Bibliotecas de Terceiros</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckHistórico de modificações: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Diversos</string>
<string name="miscDio">Usamos o Diolinx como a base para criar este aplicativo. Pode dar uma olhada é de Software Livre!</string>
<string name="miscDioBtn">Quero saber mais</string>
@ -74,8 +73,8 @@
<string name="PadTitle">Sobre EtherPad</string>
<string name="ChatTitle">Configurações de XMPP\n</string>
<string name="ChatInfo">Conversations é um aplicativo de mensagens instantâneas de código livre, padrão, descentralizado e federado para conversar com seus contactos ou com grupos.\n\nID do Jabber :\n Seu endereço de email do Disroot completo\n\nSenha :\n A sua senha do Disroot</string>
<string name="CalcInfo">Com o EtherCalc pode trabalhar colaborativamente com outros em inventrários, questionários, gestão de listas, sessões de brainstorming e mais!\nNão é necessário ter uma conta para usar.</string>
<string name="CalcTitle">Sobre EtherCalc</string>
<string name="CryptpadInfo">Uma alternativa privada por projecto às ferramentas de escritório populares.\nNão é necessário ter uma conta para usar.</string>
<string name="CryptpadTitle">Sobre Cryptpad</string>
<string name="BinTitle">Sobre PrivateBin</string>
<string name="BinInfo">PrivateBin é uma ferramenta de código livre pastebin e fórum de discussão. Os dados são criptografados/descriptografados no navegador para que o servidor não possa aceder aos seus dados. Basta colar um texto e clicar no “Enviar”, definir data de expiração (e outros ajustes) e compartilhar o link URL.\nNão é necessário ter uma conta para usar.</string>
<string name="UploadTitle">Sobre Upload (desenvolvido por Lufi)</string>
@ -132,7 +131,7 @@
<string name="Cloud">Nuvem</string>
<string name="PerformanceIssues">Problemas de desempenho</string>
<string name="Notification">Tudo certo</string>
<string name="Notificationissues">Alguns sistemas estão enfrentando problemas</string>
<string name="NotificationIssues">Alguns sistemas estão enfrentando problemas</string>
<string name="state_messages_btn">Mostrar mensagens de Status</string>
<string name="state_btn">Mostrar Status de Serviço</string>
<string name="ScheduledAt">Programado em: \</string>
@ -159,7 +158,7 @@
<string name="deviceName">Nome do dispositivo:</string>
<string name="edit_apps_title">Mostrar/ocultar apps</string>
<string name="settings">Configurações</string>
<string name="WelcomeInfo">Disroot é uma plataforma que fornece serviços on-line baseados em princípios de liberdade, privacidade, federação e descentralização.\nEste App é como seu canivete suíço para a plataforma Disroot, feito pela comunidade para a comunidade.\nSe você não tiver uma conta do Disroot mesmo assim pode usar este App e acessar todos os serviços do Disroot que não requerem uma conta:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Sondagens\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Chamadas\n\nnO App pode exigir que você instale aplicativos adicionais. Recomendamos fortemente que você instale o F-Droid - uma loja de aplicativos gratuitos e de código livre - nem todos os aplicativos daí podem ser encontrados na Loja de Google Play e além disso o F-Droid é mais orientado para a privacidade (sem rastreamento, sem necessidade de conta) você pode fazer o download, tocando no ícone do F-droid.\n</string>
<string name="WelcomeInfo">Disroot é uma plataforma que fornece serviços on-line baseados em princípios de liberdade, privacidade, federação e descentralização.\nEste App é como seu canivete suíço para a plataforma Disroot, feito pela comunidade para a comunidade.\nSe você não tiver uma conta do Disroot mesmo assim pode usar este App e acessar todos os serviços do Disroot que não requerem uma conta:\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Sondagens\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Chamadas\n\nnO App pode exigir que você instale aplicativos adicionais. Recomendamos fortemente que você instale o F-Droid - uma loja de aplicativos gratuitos e de código livre - nem todos os aplicativos daí podem ser encontrados na Loja de Google Play e além disso o F-Droid é mais orientado para a privacidade (sem rastreamento, sem necessidade de conta) você pode fazer o download, tocando no ícone do F-droid.\n</string>
<string name="hide">Ocultar app</string>
<string name="dashboard">Painel de controle</string>
<string name="action_calls">Chamadas</string>
@ -175,4 +174,7 @@
<string name="translatorsTitle">Tradutores:</string>
<string name="artworksTitle">Arte:</string>
<string name="Fixed">Resolvido</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -7,10 +7,9 @@
<string name="action_forum">Fórum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Private bin</string>
<string name="action_upload">Upload</string>
<string name="action_poll">Poll</string>
<string name="action_state">State</string>
<string name="action_howto">How to</string>
@ -32,7 +31,7 @@
<string name="CloudInfoTitle">Definições Nextcloud</string>
<string name="CloudInfo">Mantenha os seus dados sincronizados e seguros. Com o Nextcloud pode partilhar os seus ficheiros calendários, contactos e mais.\n\nHost:\n https://cloud.disroot.org\n\nNome de utilizador:\n O_seu_nome_de_utilizador_disroot\n\nPassword:\n a_sua_password_do_disroot.</string>
<string name="WelcomeTitle">Bem Vindo</string>
<string name="WelcomeInfo">O Disroot é uma plataforma baseada nos princípios de liberdade, privacidade, federação e descentralização que fornece serviços online.\nEsta aplicação é como um Canivete Suíço para a plataforma Disroot, feito pela comunidade para a comunidade.\nSe não tem uma conta Disroot pode utilizar esta aplicação para aceder a todos os serviços do Disroot que não precisam de uma conta de utilizador:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (requer uma conta apenas para o Diaspora)\n\nA aplicação pode pedir que instale outras aplicações adicionais. Nós recomendamos vivamente que instale o F-Droid - uma loja de aplicações livres e open source - porque nem todas as aplicações podem ser encontradas na Play Store Google e o F-Droid é mais focado na privacidade (sem tracking, sem preciso criar conta de utilizador) pode descarregar o F-droid carregando no ícone F-droid.\n</string>
<string name="WelcomeInfo">O Disroot é uma plataforma baseada nos princípios de liberdade, privacidade, federação e descentralização que fornece serviços online.\nEsta aplicação é como um Canivete Suíço para a plataforma Disroot, feito pela comunidade para a comunidade.\nSe não tem uma conta Disroot pode utilizar esta aplicação para aceder a todos os serviços do Disroot que não precisam de uma conta de utilizador:\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (requer uma conta apenas para o Diaspora)\n\nA aplicação pode pedir que instale outras aplicações adicionais. Nós recomendamos vivamente que instale o F-Droid - uma loja de aplicações livres e open source - porque nem todas as aplicações podem ser encontradas na Play Store Google e o F-Droid é mais focado na privacidade (sem tracking, sem preciso criar conta de utilizador) pode descarregar o F-droid carregando no ícone F-droid.\n</string>
<string name="help">Ajuda</string>
<string name="license">Licença</string>
@ -50,8 +49,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Disroot Community (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Bibliotecas de Terceiros</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Bibliotecas de Terceiros</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Miscellaneous</string>
<string name="miscDio">Nós usamos o Diolinx como a base para criar esta aplicação. Pode dar uma olhadela, também é Software Livre!</string>
<string name="miscDioBtn">Contem-me mais</string>
@ -80,8 +79,8 @@
<string name="PadTitle">Sobre EtherPad</string>
<string name="ChatTitle">Definições do XMPP\n</string>
<string name="ChatInfo">O Conversations uma aplicação de mensagens instantâneas descentralizada e federada, livre, standard e open-source para conversar com os seus contactos ou com grupos.\n\nJabber ID :\n O seu endereço de email do Disroot completo\n\nPassword :\n A sua password do Disroot</string>
<string name="CalcInfo">Com o EtherCalc pode trabalhar colaborativamente com outros em inventrários, questionários, gestão de listas, sessões de brainstorming e mais!\nNão é necessário ter uma conta de utilizador para usar.</string>
<string name="CalcTitle">Sobre EtherCalc</string>
<string name="CryptpadInfo">Uma alternativa privada por projecto às ferramentas de escritório populares.\nNão é necessário ter uma conta de utilizador para usar.</string>
<string name="CryptpadTitle">Sobre Cryptpad</string>
<string name="BinTitle">Sobre PrivateBin</string>
<string name="BinInfo">PrivateBin é um pastebin open-souce e fórum de discussão. Os dados são encriptados e desencriptados no browser para que o servidor não possa aceder aos dados. Basta colar um texto e carregar em “Send”, definir data de expiração (e outras configurações) e partilhar o link URL.\nNão é necessário ter uma conta de utilizador para usar.</string>
<string name="UploadTitle">Sobre Upload (Lufi)</string>
@ -137,7 +136,7 @@
<string name="Cloud">Cloud</string>
<string name="PerformanceIssues">Problemas de performance</string>
<string name="Notification">Sem problemas</string>
<string name="Notificationissues">Alguns serviços estão com problemas</string>
<string name="NotificationIssues">Alguns serviços estão com problemas</string>
<string name="state_messages_btn">Mostrar mensagens de State</string>
<string name="state_btn">Mostrar estado dos serviços</string>
<string name="ScheduledAt">Agendado para:</string>
@ -178,4 +177,7 @@
<string name="translatorsTitle">Tradutores:</string>
<string name="artworksTitle">Desenho:</string>
<string name="Fixed">Resolvido</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -7,10 +7,9 @@
<string name="action_forum">Forum</string>
<string name="action_chat">Ćaskanje</string>
<string name="action_pad">Etherpad</string>
<string name="action_calc">EtherCalc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">PrivateBin</string>
<string name="action_upload">Otpremi</string>
<string name="action_poll">Polls</string>
<string name="action_state">Stanje servisa</string>
<string name="action_howto">Uputstva</string>
@ -32,7 +31,7 @@
<string name="CloudInfoTitle">Nextcloud podešavanja</string>
<string name="CloudInfo">Sinhronizujte i osigurajte vaše podatke. Pomoću Nextcloud usluge možete deliti vaše datoteke, kalendare, kontakte i još mnogo toga.\n\nServer:\n https://cloud.disroot.org\n\nKorisničko ime:\n vaše_disroot_korisničko ime\n\nLozinka:\n vaša_disroot_lozinka.</string>
<string name="WelcomeTitle">Dobro došli</string>
<string name="WelcomeInfo">Disroot platforma obezbeđuje internet usluge zasnovane na principima slobode, privatnosti, federacije i decentralizacije.\nOva aplikacija je višenamenska alatka za Disroot platformu, koju su članovi zajednice napravili za zajednicu.\nAko nemate nalog na Disroot platformi, možete koristiti ovu aplikaciju za pristup svim Disroot uslugama za koje nije potreban nalog:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; PrivateBin\n \ \ \ &#8226; Otpremi\n \ \ \ &#8226; Polls\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (potreban zaseban Diaspora nalog)\n\nOva aplikacija možda će zahtevati instalaciju dodatnih aplikacija. Preporučujemo da instalirate F-Droid, besplatnu prodavnicu otvorenog koda, jer pojedine aplikacije nisu dostupne na Play prodavnici, a pritom F-Droid nudi više privatnosti (nema praćenja, nije potreban nalog). Aplikaciju možete preuzeti dodirom na F-droid ikonicu.\n</string>
<string name="WelcomeInfo">Disroot platforma obezbeđuje internet usluge zasnovane na principima slobode, privatnosti, federacije i decentralizacije.\nOva aplikacija je višenamenska alatka za Disroot platformu, koju su članovi zajednice napravili za zajednicu.\nAko nemate nalog na Disroot platformi, možete koristiti ovu aplikaciju za pristup svim Disroot uslugama za koje nije potreban nalog:\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; PrivateBin\n \ \ \ &#8226; Otpremi\n \ \ \ &#8226; Polls\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Diaspora* (potreban zaseban Diaspora nalog)\n\nOva aplikacija možda će zahtevati instalaciju dodatnih aplikacija. Preporučujemo da instalirate F-Droid, besplatnu prodavnicu otvorenog koda, jer pojedine aplikacije nisu dostupne na Play prodavnici, a pritom F-Droid nudi više privatnosti (nema praćenja, nije potreban nalog). Aplikaciju možete preuzeti dodirom na F-droid ikonicu.\n</string>
<string name="help">Pomoć</string>
<string name="license">Licenca</string>
@ -51,8 +50,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Disroot zajednica (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Biblioteke treće strane</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Biblioteke treće strane</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckCangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Ostalo</string>
<string name="miscDio">Iskoristili smo Diolinx kao osnovu naše aplikacije. Proverite, to je takođe besplatan softver!</string>
<string name="miscDioBtn">Detaljnije</string>
@ -81,8 +80,8 @@
<string name="PadTitle">EtherPad detalji</string>
<string name="ChatTitle">XMPP podešavanja\n</string>
<string name="ChatInfo">Conversations je besplatna, otvorenog koda, decentralizovana i federativna aplikacija za brzo slanje poruka i ćaskanje sa pojedincima ili grupama.\n\nJabber ID :\n Vaša puna Disroot imejl adresa\n\nLozinka :\n Vaša Disroot lozinka</string>
<string name="CalcInfo">Pomoću EtherCalc-a možete grupno raditi na popisnim listama, anketnim formama, upravljanju listama, kreativnim sastancima i još mnogo čemu!\nRegistracija nije potrebna.</string>
<string name="CalcTitle">EtherCalc detalji</string>
<string name="CryptpadInfo">Pomoću Cryptpad-a možete grupno raditi na popisnim listama, anketnim formama, upravljanju listama, kreativnim sastancima i još mnogo čemu!\nRegistracija nije potrebna.</string>
<string name="CryptpadTitle">Cryptpad detalji</string>
<string name="BinTitle">PrivateBin pomoć</string>
<string name="BinInfo">PrivateBin je servis otvorenog koda, a služi kao \'korpa za odlaganje i deljenje\' i kao forum. Podaci se šifruju/dešifruju u pregledaču, što znači da server ne prepoznaje sadržaj pohranjenih datoteka. Nalepite tekst, kliknite “Pošalji”, odredite rok trajanja (i ostala obeležja) i podelite vezu.\nRegistracija nije potrebna.</string>
<string name="UploadTitle">Otpremi (servis pokreće Lufi) Info</string>
@ -138,7 +137,7 @@
<string name="Cloud">Oblak</string>
<string name="PerformanceIssues">Problemi sa performansama</string>
<string name="Notification">Nema problema</string>
<string name="Notificationissues">Problemi u radu pojedinih servisa</string>
<string name="NotificationIssues">Problemi u radu pojedinih servisa</string>
<string name="state_messages_btn">Prikaži poruke o stanju servisa</string>
<string name="state_btn">Prikaži stanje servisa</string>
<string name="ScheduledAt">Zakazano za:</string>
@ -179,4 +178,7 @@
<string name="translatorsTitle">Prevodioci:</string>
<string name="artworksTitle">Crteži:</string>
<string name="Fixed">Fixed</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -1,4 +1,4 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<resources>
<string name="app_name">Disroot App</string>
<string name="action_home">Home</string>
<string name="action_mail">Mail</string>
@ -7,11 +7,10 @@
<string name="action_forum">Forum</string>
<string name="action_chat">Chat</string>
<string name="action_pad">Pad</string>
<string name="action_calc">Calc</string>
<string name="action_cryptpad">Cryptpad</string>
<string name="action_bin">Paste bin</string>
<string name="action_upload">Upload</string>
<string name="action_searx">Search</string>
<string name="action_poll">Polls</string>
<string name="action_board">Project board</string>
<string name="action_state">State</string>
<string name="action_howto">How to</string>
@ -44,8 +43,8 @@
<string name="disrootUrl">https://disroot.org</string>
<string name="disroot"> * Disroot Community (Disroot):</string>
<string name="fDroid">F-Droid</string>
<string name="thirdparty">Third-Party Libraries</string>
<string name="thirdpartyText"><a href="https://github.com/cketti/ckChangeLog">ckChangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="thirdParty">Third-Party Libraries</string>
<string name="thirdPartyText"><a href="https://github.com/cketti/ckChangeLog">ckChangelog: </a>Apache License 2.0\n\n<a href="https://github.com/wsdfhjxc/taponium/">Taponium: </a>GNU General Public License v3.0</string>
<string name="misc">Miscellaneous</string>
<string name="miscDio">We used Diolinux as our starting base to create this app. Go check it out, it\'s free software as well!</string>
<string name="miscDioBtn">Tell me more</string>
@ -67,15 +66,15 @@
<string name="SpreadTheWordBtn">Share the app</string>
<string name="DisrootWeb">Disroot web</string>
<string name="FirstTitle">Last couple of things!</string>
<string name="FirstInfo">&#8226; By doing a long press on each icon you can get extra information… \n\n&#8226; The app can sync with the status page of Disroot. This means that you will receive realtime updates on issues, downtimes, scheduled maintenace and others published via https://status.disroot.org\nWe recommend to turn off battery optimization and allow Disroot app to run in the background. If you\'re not sure, you can always change the setting from the Disroot app menu later.</string>
<string name="FirstInfo">&#8226; By doing a long press on each icon you can get extra information… \n\n&#8226; The app can sync with the status page of Disroot. This means that you will receive realtime updates on issues, downtimes, scheduled maintenance and others published via https://status.disroot.org\nWe recommend to turn off battery optimization and allow Disroot app to run in the background. If you\'re not sure, you can always change the setting from the Disroot app menu later.</string>
<string name="DiasporaTitle">Diaspora* Settings</string>
<string name="DiasporaInfo">Distributed and decentralized social network. Post, share, like, create communities.\n\nUsername:\n your_diaspora_username@pod.disroot.org\n\nPassword:\n your_diaspora_password</string>
<string name="PadInfo">With Etherpad write articles, press releases, to-do lists, etc. together with friends, fellow students or colleagues, all working on the same document at the same time.\nNo registration is required.</string>
<string name="PadTitle">EtherPad Info</string>
<string name="ChatTitle">XMPP Settings\n</string>
<string name="ChatInfo">Conversations is a free, standard and open-source decentralized and federated instant messaging application for chatting with contacts or within groups.\n\nJabber ID :\n Your full Disroot email address\n\nPassword :\n Your Disroot password</string>
<string name="CalcInfo">With EtherCalc work together on inventories, survey forms, list management, brainstorming sessions and more!\nNo registration is required.</string>
<string name="CalcTitle">EtherCalc Info</string>
<string name="CryptpadInfo">A private-by-design alternative to popular office tools.\nNo registration is required.</string>
<string name="CryptpadTitle">Cryptpad Info</string>
<string name="BinTitle">PrivateBin Help</string>
<string name="BinInfo">PrivateBin is an open-source online pastebin and discussion board. Data is encrypted/decrypted in the browser so that the server has zero knowledge of hosted data. Just paste a text, click “Send”, set expiration (and other features) and share the URL.\nNo registration is required.</string>
<string name="UploadTitle">Upload (powered by Lufi) Info</string>
@ -92,7 +91,7 @@
<string name="StateInfo">Page to see the current state of Disroot services. Here you can see if any service has a problem, if there are any performance issues, as well as get to know when we schedule maintenance in which time some services might be unavailable.\n\n<b>Alternative ways to get State updates:</b></string>
<string name="state_help">State on XMPP</string>
<string name="HowToTitle">How to Info</string>
<string name="HowToInfo">Our page with howtos and tutorials to help you find your way around the various Disroot services.</string>
<string name="HowToInfo">Our page with howto\'s and tutorials to help you find your way around the various Disroot services.</string>
<string name="AboutTitle">About Info</string>
<string name="AboutInfo">This is the about page of this app</string>
<string name="ForumTitle">Forum Help</string>
@ -132,7 +131,7 @@
<string name="Cloud">Cloud</string>
<string name="PerformanceIssues">Performance Issues</string>
<string name="Notification">No issues</string>
<string name="Notificationissues">Some systems are experiencing issues</string>
<string name="NotificationIssues">Some systems are experiencing issues</string>
<string name="state_messages_btn">Show State messages</string>
<string name="state_btn">Show Service State</string>
<string name="ScheduledAt">Scheduled at: \</string>
@ -159,7 +158,7 @@
<string name="deviceName">Device name:</string>
<string name="edit_apps_title">Show/hide apps</string>
<string name="settings">Settings</string>
<string name="WelcomeInfo">Disroot is a platform providing online services based on principles of freedom, privacy, federation and decentralization.\nThis app is like your Swiss Army knife to the Disroot platform, made by the community for the community.\nIf you don\'t have a Disroot account you can still use this app to access all the Disroot services that do not require an account:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Ethercalc\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Calls\n\nThe app may require you to install additional apps. We highly recommend you install F-Droid - a free and open source app marketplace - as not all apps can be found on Google\'s Play Store and F-Droid is more privacy oriented (no tracking, no account needed) you can download it by tapping on the F-droid icon.\n</string>
<string name="WelcomeInfo">Disroot is a platform providing online services based on principles of freedom, privacy, federation and decentralization.\nThis app is like your Swiss Army knife to the Disroot platform, made by the community for the community.\nIf you don\'t have a Disroot account you can still use this app to access all the Disroot services that do not require an account:\n \ \ \ &#8226; Etherpad\n \ \ \ &#8226; Cryptpad\n \ \ \ &#8226; Private bin\n \ \ \ &#8226; Upload\n \ \ \ &#8226; Poll\n \ \ \ &#8226; Searx\n \ \ \ &#8226; Calls\n\nThe app may require you to install additional apps. We highly recommend you install F-Droid - a free and open source app marketplace - as not all apps can be found on Google\'s Play Store and F-Droid is more privacy oriented (no tracking, no account needed) you can download it by tapping on the F-droid icon.\n</string>
<string name="hide">Hide app</string>
<string name="dashboard">Dashboard</string>
<string name="action_calls">Calls</string>
@ -174,7 +173,7 @@
<string name="devsTitle">Developers:</string>
<string name="translatorsTitle">Translators:</string>
<string name="artworksTitle">Artwork:</string>
<string name="Fixed">Risolto</string>
<string name="down" tools:ignore="MissingTranslation">Down!</string>
<string name="more_info" tools:ignore="MissingTranslation">Tippen Sie für weitere Informationen</string>
<string name="Fixed">Solved</string>
<string name="down">Down</string>
<string name="more_info">Tap for more info</string>
</resources>

View File

@ -2,6 +2,7 @@
<changelog>
<release version="2.0.4" versioncode="27" >
<change>Migration to new cState "https://status.disroot.org"</change>
<change>Added Cryptpad and removed obsolete Calc + Polls</change>
<change>Updated SDK and gradle</change>
</release>
<release version="2.0.3" versioncode="26" >
@ -24,12 +25,12 @@
</release>
<release version="1.2.3" versioncode="22" >
<change>Cleaned up code for better maintenance</change>
<change>Made Third party links klickable</change>
<change>Made Third party links clickable</change>
<change>Made application info fully translatable</change>
<change>Made Device info fully translatable</change>
</release>
<release version="1.2.2" versioncode="21" >
<change>Removed battery optimization promt on updates</change>
<change>Removed battery optimization prompt on updates</change>
<change>Corrected links in description in F-droid</change>
<change>Added Sr and De translations of the description in F-Droid</change>
<change>Spanish en German translation updated</change>
@ -83,7 +84,7 @@
<change>A few other small fixes</change>
</release>
<release version="1.0.2" versioncode="12" >
<change>Third partie cookies disabled</change>
<change>Third party cookies disabled</change>
<change>Fixed French translation</change>
<change>Added more clear dialogs for additional apps</change>
</release>

View File

@ -2,7 +2,7 @@
Diese App ist Dein Schweizer Taschenmesser für die Disroot-Plattform, von der Gemeinschaft für die Gemeinschaft.
Auch wenn Du keinen Disroot-Account hast, kannst Du diese App benutzen, um auf alle Disroot-Dienste zuzugreifen, die keinen Account benötigen:
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Upload
* Poll

View File

@ -2,7 +2,7 @@
This app is like your Swiss Army knife to the Disroot platform, made by the community for the community.
If you don't have a Disroot account you can still use this app to access all the Disroot services that do not require an account:
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Upload
* Poll

View File

@ -2,7 +2,7 @@
Esta aplicación es como la navaja suiza de la plataforma <b>Disroot</b>, hecha por la comunidad para la comunidad.
Si no tienes una cuenta de <b>Disroot</b> igual puedes utilizar esta aplicación para acceder a todos los servicios que no la requieren:
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Subir archivos
* Encuestas

View File

@ -2,7 +2,7 @@
Cette application est comme votre couteau suisse sur la plateforme Disroot, faite par la communauté pour la communauté.
Si vous n'avez pas de compte Disroot, vous pouvez toujours utiliser cette application pour accéder à tous les services Disroot qui ne nécessitent pas de compte :
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Upload (Téléverser)
* Poll (Sondage)

View File

@ -2,7 +2,7 @@
Questa applicazione è come il tuo coltellino svizzero per la piattaforma Disroot, realizzata dalla comunità per la comunità.
Se non si dispone di un account Disroot è comunque possibile utilizzare questa applicazione per accedere a tutti i servizi Disroot che non richiedono un account:
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Upload
* Poll

View File

@ -2,7 +2,7 @@
Deze app is als uw Zwitsers legermes voor het Disroot-platform, gemaakt door de gemeenschap voor de gemeenschap.
Als u geen Disroot account heeft kunt u deze app nog steeds gebruiken om toegang te krijgen tot alle Disroot diensten die geen account nodig hebben:
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Upload
* Poll

View File

@ -2,7 +2,7 @@
Ova aplikacija je višenamenska alatka za Disroot platformu, koju su članovi zajednice napravili za zajednicu.
Ako nemate nalog na Disroot platformi, možete koristiti ovu aplikaciju za pristup svim Disroot uslugama za koje nije potreban nalog:
* Etherpad
* Ethercalc
* Cryptpad
* Private bin
* Upload
* Poll