ready for V2.0.2
This commit is contained in:
parent
4cfde48b9a
commit
259f9748e0
|
@ -6,8 +6,8 @@ android {
|
||||||
applicationId "org.disroot.disrootapp"
|
applicationId "org.disroot.disrootapp"
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 24
|
versionCode 25
|
||||||
versionName "2.0.1"
|
versionName "2.0.2"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
|
@ -54,7 +54,31 @@
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
<data
|
<data
|
||||||
android:host="*.disroot.org"
|
android:host="disroot.org"
|
||||||
|
android:scheme="https" />
|
||||||
|
<data
|
||||||
|
android:host="upload.disroot.org"
|
||||||
|
android:scheme="https" />
|
||||||
|
<data
|
||||||
|
android:host="forum.disroot.org"
|
||||||
|
android:scheme="https" />
|
||||||
|
<data
|
||||||
|
android:host="calc.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" />
|
||||||
|
<data
|
||||||
|
android:host="board.disroot.org"
|
||||||
|
android:scheme="https" />
|
||||||
|
<data
|
||||||
|
android:host="searx.disroot.org"
|
||||||
android:scheme="https" />
|
android:scheme="https" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package org.disroot.disrootapp.ui;
|
package org.disroot.disrootapp.ui;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.DownloadManager;
|
import android.app.DownloadManager;
|
||||||
|
@ -12,6 +13,7 @@ import android.content.pm.PackageManager;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
@ -61,7 +63,11 @@ import android.widget.Toast;
|
||||||
import org.disroot.disrootapp.R;
|
import org.disroot.disrootapp.R;
|
||||||
import org.disroot.disrootapp.StatusService;
|
import org.disroot.disrootapp.StatusService;
|
||||||
import org.disroot.disrootapp.utils.Constants;
|
import org.disroot.disrootapp.utils.Constants;
|
||||||
|
import org.disroot.disrootapp.utils.HttpHandler;
|
||||||
import org.disroot.disrootapp.webviews.DisWebChromeClient;
|
import org.disroot.disrootapp.webviews.DisWebChromeClient;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -75,6 +81,8 @@ import java.util.Map;
|
||||||
|
|
||||||
import de.cketti.library.changelog.ChangeLog;
|
import de.cketti.library.changelog.ChangeLog;
|
||||||
|
|
||||||
|
import static android.support.constraint.Constraints.TAG;
|
||||||
|
|
||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class MainActivity extends AppCompatActivity implements View.OnLongClickListener,View.OnClickListener {
|
public class MainActivity extends AppCompatActivity implements View.OnLongClickListener,View.OnClickListener {
|
||||||
|
|
||||||
|
@ -85,6 +93,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
ValueCallback<Uri[]> chooserPathUri;
|
ValueCallback<Uri[]> chooserPathUri;
|
||||||
Button button;
|
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 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 CookieManager cookieManager;
|
private CookieManager cookieManager;
|
||||||
private WebView webView;
|
private WebView webView;
|
||||||
private DisWebChromeClient disWebChromeClient;
|
private DisWebChromeClient disWebChromeClient;
|
||||||
|
@ -98,6 +107,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
private String mCameraPhotoPath;
|
private String mCameraPhotoPath;
|
||||||
private String loadUrl;
|
private String loadUrl;
|
||||||
private int progressStatus = 0;
|
private int progressStatus = 0;
|
||||||
|
ArrayList componentList;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -134,6 +144,8 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
componentList = new ArrayList<>();
|
||||||
|
new GetList().execute();
|
||||||
|
|
||||||
setupWebView(savedInstanceState, frameLayoutContainer);
|
setupWebView(savedInstanceState, frameLayoutContainer);
|
||||||
//settings
|
//settings
|
||||||
|
@ -416,13 +428,13 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
else startActivity(board);
|
else startActivity(board);
|
||||||
break;
|
break;
|
||||||
case R.id.NotesBtn:
|
case R.id.NotesBtn:
|
||||||
Intent notes = getPackageManager().getLaunchIntentForPackage(Constants.NotesApp);
|
Intent notes = getPackageManager().getLaunchIntentForPackage(Constants.NotesApp);
|
||||||
if(notes == null) {
|
if(notes == null) {
|
||||||
showNotesDialog();
|
showNotesDialog();
|
||||||
break;
|
|
||||||
}
|
|
||||||
else startActivity(notes);
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
else startActivity(notes);
|
||||||
|
break;
|
||||||
case R.id.GitBtn:
|
case R.id.GitBtn:
|
||||||
Intent git = getPackageManager().getLaunchIntentForPackage(Constants.GitApp);
|
Intent git = getPackageManager().getLaunchIntentForPackage(Constants.GitApp);
|
||||||
if(git == null) {
|
if(git == null) {
|
||||||
|
@ -619,7 +631,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.MailInfoTitle);
|
builder.setTitle(R.string.MailInfoTitle);
|
||||||
builder.setMessage(getString(R.string.MailInfo));
|
builder.setMessage(email + "\n\n" + getString(R.string.MailInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -633,9 +645,9 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
|
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
|
||||||
if (findViewById( R.id.MailBtn).getParent()!=null){
|
if (findViewById( R.id.MailBtn).getParent()!=null){
|
||||||
viewGroup.removeView(MailBtn);
|
viewGroup.removeView(MailBtn);
|
||||||
BtnPreference.edit().putBoolean( "MailBtn", false ).apply();
|
BtnPreference.edit().putBoolean( "MailBtn", false ).apply();
|
||||||
return;}
|
return;}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
builder.show();
|
builder.show();
|
||||||
|
@ -662,7 +674,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.CloudInfoTitle);
|
builder.setTitle(R.string.CloudInfoTitle);
|
||||||
builder.setMessage(getString(R.string.CloudInfo));
|
builder.setMessage(cloud + "\n\n" + getString(R.string.CloudInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -738,7 +750,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.ForumTitle);
|
builder.setTitle(R.string.ForumTitle);
|
||||||
builder.setMessage(getString(R.string.ForumInfo));
|
builder.setMessage(forum + "\n\n"+ getString(R.string.ForumInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -784,7 +796,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.ChatTitle);
|
builder.setTitle(R.string.ChatTitle);
|
||||||
builder.setMessage(getString(R.string.ChatInfo));
|
builder.setMessage(xmpp +"\n\n"+ getString(R.string.ChatInfo));
|
||||||
if(check.getBoolean("checkConv", true)|| check.getBoolean("checkPix",true)) {
|
if(check.getBoolean("checkConv", true)|| check.getBoolean("checkPix",true)) {
|
||||||
View view = View.inflate(this, R.layout.check_forget, null);
|
View view = View.inflate(this, R.layout.check_forget, null);
|
||||||
final CheckBox forgetChat = (CheckBox) view.findViewById(R.id.forgetChat);
|
final CheckBox forgetChat = (CheckBox) view.findViewById(R.id.forgetChat);
|
||||||
|
@ -838,7 +850,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.PadTitle);
|
builder.setTitle(R.string.PadTitle);
|
||||||
builder.setMessage(getString(R.string.PadInfo));
|
builder.setMessage(etherpad +"\n\n"+ getString(R.string.PadInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -880,7 +892,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.CalcTitle);
|
builder.setTitle(R.string.CalcTitle);
|
||||||
builder.setMessage(getString(R.string.CalcInfo));
|
builder.setMessage(ethercalc +"\n\n"+ getString(R.string.CalcInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -906,7 +918,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.BinTitle);
|
builder.setTitle(R.string.BinTitle);
|
||||||
builder.setMessage(getString(R.string.BinInfo));
|
builder.setMessage(bin +"\n\n"+ getString(R.string.BinInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -932,7 +944,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.UploadTitle);
|
builder.setTitle(R.string.UploadTitle);
|
||||||
builder.setMessage(getString(R.string.UploadInfo));
|
builder.setMessage(upload +"\n\n"+ getString(R.string.UploadInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -959,7 +971,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.SearxTitle);
|
builder.setTitle(R.string.SearxTitle);
|
||||||
builder.setMessage(getString(R.string.SearxInfo));
|
builder.setMessage(searx +"\n\n"+ getString(R.string.SearxInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.tell_more, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.tell_more, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -985,7 +997,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.PollsTitle);
|
builder.setTitle(R.string.PollsTitle);
|
||||||
builder.setMessage(getString(R.string.PollsInfo));
|
builder.setMessage(polls +"\n\n"+ getString(R.string.PollsInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1011,7 +1023,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.BoardTitle);
|
builder.setTitle(R.string.BoardTitle);
|
||||||
builder.setMessage(getString(R.string.BoardInfo));
|
builder.setMessage(taiga +"\n\n"+ getString(R.string.BoardInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.more_help, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1062,7 +1074,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.DiaInstallTitle);
|
builder.setTitle(R.string.DiaInstallTitle);
|
||||||
builder.setMessage(getString(R.string.CallsDialog));
|
builder.setMessage(taiga +"\n\n"+ getString(R.string.CallsDialog));
|
||||||
builder.setPositiveButton(R.string.global_install, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.global_install, new DialogInterface.OnClickListener() {
|
||||||
Intent calls = getPackageManager().getLaunchIntentForPackage(Constants.CallsApp);
|
Intent calls = getPackageManager().getLaunchIntentForPackage(Constants.CallsApp);
|
||||||
@Override
|
@Override
|
||||||
|
@ -1080,7 +1092,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.NotesTitle);
|
builder.setTitle(R.string.NotesTitle);
|
||||||
builder.setMessage(getString(R.string.NotesInfo));
|
builder.setMessage(notes +"\n\n"+ getString(R.string.NotesInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.tell_more, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.tell_more, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1122,7 +1134,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false);
|
builder.setCancelable(false);
|
||||||
builder.setTitle(R.string.GitTitle);
|
builder.setTitle(R.string.GitTitle);
|
||||||
builder.setMessage(getString(R.string.GitInfo));
|
builder.setMessage(git +"\n\n"+ getString(R.string.GitInfo));
|
||||||
builder.setPositiveButton(R.string.global_ok, null);
|
builder.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNegativeButton(R.string.tell_more, new DialogInterface.OnClickListener() {
|
builder.setNegativeButton(R.string.tell_more, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1165,7 +1177,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setCancelable(false)
|
builder.setCancelable(false)
|
||||||
.setTitle(R.string.UserTitle)
|
.setTitle(R.string.UserTitle)
|
||||||
.setMessage(getString(R.string.UserInfo))
|
.setMessage(user +"\n\n"+ getString(R.string.UserInfo))
|
||||||
.setPositiveButton(R.string.global_ok, null);
|
.setPositiveButton(R.string.global_ok, null);
|
||||||
builder.setNeutralButton( R.string.hide, new DialogInterface.OnClickListener() {
|
builder.setNeutralButton( R.string.hide, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1908,4 +1920,192 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
|
||||||
openFileChooser(uploadMsg, acceptType);
|
openFileChooser(uploadMsg, acceptType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//components
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
|
class GetList extends AsyncTask<Void, Void, Void> {
|
||||||
|
protected Void doInBackground(Void... arg0) {
|
||||||
|
HttpHandler sh = new HttpHandler();
|
||||||
|
|
||||||
|
String jsonStringcomponents = sh.makeServiceCall( Constants.components );
|
||||||
|
|
||||||
|
Log.e( TAG, "Response from url(Service): " + Constants.components );
|
||||||
|
|
||||||
|
if (jsonStringcomponents != null) {//components page
|
||||||
|
try {
|
||||||
|
JSONObject jsonObj = new JSONObject(jsonStringcomponents);
|
||||||
|
|
||||||
|
// 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");
|
||||||
|
|
||||||
|
// tmp hash map for single service
|
||||||
|
HashMap<String, String> serviceDetails = new HashMap<>();
|
||||||
|
|
||||||
|
// adding each child node to HashMap key => value
|
||||||
|
serviceDetails.put("id", id);
|
||||||
|
serviceDetails.put("name", name);
|
||||||
|
serviceDetails.put("description", description);
|
||||||
|
|
||||||
|
// adding service to service list
|
||||||
|
componentList.add(serviceDetails);
|
||||||
|
}
|
||||||
|
} 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 {
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Void result) {
|
||||||
|
super.onPostExecute( result );
|
||||||
|
// Dismiss the progress dialog
|
||||||
|
for (int a =0; a<componentList.size();a++)
|
||||||
|
{
|
||||||
|
HashMap<String, String> hashmap= (HashMap<String, String>) componentList.get(a);
|
||||||
|
String hash = hashmap.get("name");
|
||||||
|
switch (hash) {
|
||||||
|
case "Email Service":
|
||||||
|
email = hashmap.get("description");
|
||||||
|
getEmail(email);
|
||||||
|
break;
|
||||||
|
case "Cloud":
|
||||||
|
cloud = hashmap.get("description");
|
||||||
|
getCloud(cloud);
|
||||||
|
break;
|
||||||
|
case "Forum":
|
||||||
|
forum = hashmap.get("description");
|
||||||
|
getForum(forum);
|
||||||
|
break;
|
||||||
|
case "Etherpad":
|
||||||
|
etherpad = hashmap.get("description");
|
||||||
|
getEtherpad(etherpad);
|
||||||
|
break;
|
||||||
|
case "Ethercalc":
|
||||||
|
ethercalc = hashmap.get("description");
|
||||||
|
getEthercalc(ethercalc);
|
||||||
|
break;
|
||||||
|
case "Bin":
|
||||||
|
bin = hashmap.get("description");
|
||||||
|
getBin(bin);
|
||||||
|
break;
|
||||||
|
case "Upload":
|
||||||
|
upload = hashmap.get("description");
|
||||||
|
getUpload(upload);
|
||||||
|
break;
|
||||||
|
case "Searx":
|
||||||
|
searx = hashmap.get("description");
|
||||||
|
getSearx(searx);
|
||||||
|
break;
|
||||||
|
case "Polls":
|
||||||
|
polls = hashmap.get("description");
|
||||||
|
getPolls(polls);
|
||||||
|
break;
|
||||||
|
case "Taiga":
|
||||||
|
taiga = hashmap.get("description");
|
||||||
|
getTaiga(taiga);
|
||||||
|
break;
|
||||||
|
case "User Password management":
|
||||||
|
user = hashmap.get("description");
|
||||||
|
getUser(user);
|
||||||
|
break;
|
||||||
|
case "XMPP":
|
||||||
|
xmpp = hashmap.get("description");
|
||||||
|
getXmpp(xmpp);
|
||||||
|
break;
|
||||||
|
case "Nextcloud Notes":
|
||||||
|
notes = hashmap.get("description");
|
||||||
|
getNotes(notes);
|
||||||
|
break;
|
||||||
|
case "Git Service":
|
||||||
|
git = hashmap.get("description");
|
||||||
|
getGit(git);
|
||||||
|
break;
|
||||||
|
case "Cryptpad":
|
||||||
|
cryptpad = hashmap.get("description");
|
||||||
|
getCryptpad(cryptpad);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getEmail(String string){
|
||||||
|
email = string;
|
||||||
|
}
|
||||||
|
private void getCloud(String string){
|
||||||
|
cloud = string;
|
||||||
|
}
|
||||||
|
private void getForum(String string){
|
||||||
|
forum = string;
|
||||||
|
}
|
||||||
|
private void getEtherpad(String string){
|
||||||
|
etherpad = string;
|
||||||
|
}
|
||||||
|
private void getEthercalc(String string){
|
||||||
|
ethercalc = string;
|
||||||
|
}
|
||||||
|
private void getBin(String string){
|
||||||
|
bin = string;
|
||||||
|
}
|
||||||
|
private void getUpload(String string){
|
||||||
|
upload = string;
|
||||||
|
}
|
||||||
|
private void getSearx(String string){
|
||||||
|
searx = string;
|
||||||
|
}
|
||||||
|
private void getPolls(String string){
|
||||||
|
polls = string;
|
||||||
|
}
|
||||||
|
private void getTaiga(String string){
|
||||||
|
taiga = string;
|
||||||
|
}
|
||||||
|
private void getUser(String string){
|
||||||
|
user = string;
|
||||||
|
}
|
||||||
|
private void getXmpp(String string){
|
||||||
|
xmpp = string;
|
||||||
|
}
|
||||||
|
private void getNotes(String string){
|
||||||
|
notes = string;
|
||||||
|
}
|
||||||
|
private void getGit(String string){
|
||||||
|
git = string;
|
||||||
|
}
|
||||||
|
private void getCryptpad(String string){
|
||||||
|
cryptpad = string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,4 +71,5 @@ public class Constants {
|
||||||
public static final int INPUT_FILE_REQUEST_CODE = 1;//file upload
|
public static final int INPUT_FILE_REQUEST_CODE = 1;//file upload
|
||||||
public static final int FILECHOOSER_RESULTCODE = 1;//file upload
|
public static final int FILECHOOSER_RESULTCODE = 1;//file upload
|
||||||
public static final String TAG = MainActivity.class.getSimpleName();
|
public static final String TAG = MainActivity.class.getSimpleName();
|
||||||
|
public static final String components = "https://state.disroot.org/api/v1/components?per_page=40";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<changelog>
|
<changelog>
|
||||||
|
<release version="2.0.2" versioncode="25" >
|
||||||
|
<change>prevent deck url's to be opened in this app, but open deck app instead</change>
|
||||||
|
<change>Added additional info about all services from disroot state's cachet api</change>
|
||||||
|
</release>
|
||||||
<release version="2.0.1" versioncode="24" >
|
<release version="2.0.1" versioncode="24" >
|
||||||
<change>Scheduled at: to be shown only on planned issues</change>
|
<change>Scheduled at: to be shown only on planned issues</change>
|
||||||
</release>
|
</release>
|
||||||
|
|
Loading…
Reference in New Issue