1package com.cheogram.android;
2
3// Based on code from https://codeberg.org/monocles/monocles_chat/raw/commit/master/src/main/java/de/monocles/chat/WebXDCStore.java
4
5import static android.view.View.VISIBLE;
6import static eu.siacs.conversations.ui.ActionBarActivity.configureActionBar;
7import static eu.siacs.conversations.utils.AccountUtils.MANAGE_ACCOUNT_ACTIVITY;
8
9import android.app.Activity;
10import android.content.Context;
11import android.content.Intent;
12import android.content.IntentFilter;
13import android.content.SharedPreferences;
14import android.net.ConnectivityManager;
15import android.net.NetworkInfo;
16import android.net.Uri;
17import android.os.Build;
18import android.os.Bundle;
19import android.os.Environment;
20import android.text.Html;
21import android.text.method.LinkMovementMethod;
22import android.view.MenuItem;
23import android.webkit.DownloadListener;
24import android.webkit.URLUtil;
25import android.webkit.WebSettings;
26import android.webkit.WebView;
27import android.webkit.WebViewClient;
28
29import eu.siacs.conversations.R;
30import eu.siacs.conversations.services.ChannelDiscoveryService;
31import eu.siacs.conversations.ui.Activities;
32import eu.siacs.conversations.ui.XmppActivity;
33import eu.siacs.conversations.databinding.ActivityWebxdcStoreBinding;
34
35import androidx.annotation.NonNull;
36import androidx.appcompat.app.ActionBar;
37import androidx.appcompat.app.AlertDialog;
38import androidx.databinding.DataBindingUtil;
39
40import android.annotation.SuppressLint;
41import android.widget.TextView;
42import android.widget.Toast;
43
44public class WebxdcStore extends XmppActivity {
45 @SuppressLint("SetJavaScriptEnabled")
46 @Override
47 protected void onCreate(Bundle savedInstanceState) {
48 super.onCreate(savedInstanceState);
49 final ActivityWebxdcStoreBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_webxdc_store);
50 Activities.setStatusAndNavigationBarColors(this, binding.getRoot());
51 setSupportActionBar(binding.toolbar);
52 configureActionBar(getSupportActionBar());
53
54 //getSupportActionBar().setDisplayShowHomeEnabled(false);
55 //getSupportActionBar().setDisplayHomeAsUpEnabled(false);
56 WebView webView = findViewById(R.id.web);
57 String URL = "https://webxdc.org/apps/";
58 if (isNetworkAvailable(this)) {
59 webView.loadUrl(URL);
60 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
61 webView.setForceDarkAllowed(true);
62 }
63 webView.getSettings().setJavaScriptEnabled(true);
64 webView.getSettings().setDomStorageEnabled(true);
65 webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
66 webView.setWebViewClient(new WebViewClient() {
67 @Override
68 public boolean shouldOverrideUrlLoading(WebView view, String url) {
69 view.loadUrl(url);
70 return true;
71 }
72 });
73 webView.setDownloadListener(new DownloadListener() {
74 @Override
75 public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {
76 final var intent = new Intent();
77 intent.setData(Uri.parse(url));
78 setResult(Activity.RESULT_OK, intent);
79 finish();
80 }
81 });
82 } else {
83 Toast.makeText(this, R.string.account_status_no_internet, Toast.LENGTH_LONG).show();
84 }
85 }
86
87 @Override
88 protected void refreshUiReal() {
89
90 }
91
92 @Override
93 protected void onBackendConnected() {
94 }
95
96 //check for internet connection
97 private boolean isNetworkAvailable(Context context) {
98 ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
99 if (connectivity != null) {
100 NetworkInfo[] info = connectivity.getAllNetworkInfo();
101 if (info != null) {
102 for (NetworkInfo anInfo : info) {
103 if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
104 return true;
105 }
106 }
107 }
108 }
109 return false;
110 }
111}