diff --git a/app/assets/index.html b/app/assets/index.html
index 8096f7d..ddf4bb3 100644
--- a/app/assets/index.html
+++ b/app/assets/index.html
@@ -175,6 +175,8 @@ box-shadow: 0 0 10px grey;
+
+
<
diff --git a/app/src/calender/app/AppActivity.java b/app/src/calender/app/AppActivity.java
index e0b6859..8a791f4 100644
--- a/app/src/calender/app/AppActivity.java
+++ b/app/src/calender/app/AppActivity.java
@@ -18,102 +18,119 @@ import java.util.Objects;
import android.app.Notification;
import android.app.NotificationManager;
import android.Manifest;
-import android.graphics.Bitmap;
-import android.graphics.Color;
-import android.graphics.drawable.Icon;
+import java.util.Calendar;
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+//import android.graphics.Bitmap;
+//import android.graphics.drawable.Icon;
public class AppActivity extends Activity {
- private Icon icon;
- private Bitmap bitmap;
+// private Icon icon;
+// private Bitmap bitmap;
- private static final String BASE_URI = "https://alexmahr.de";
- public String readFileFromAssets(String filename) {
- String filecontents = "";
- try {
- InputStream stream = getAssets().open(filename);
- int filesize = stream.available();
- byte[] filebuffer = new byte[filesize];
- stream.read(filebuffer);
- stream.close();
- filecontents = new String(filebuffer);
- } catch (Exception e) {
- // I <3 java exceptions
- }
- return filecontents;
+
+ private static final String BASE_URI = "https://alexmahr.de";
+ public String readFileFromAssets(String filename) {
+ String filecontents = "";
+ try {
+ InputStream stream = getAssets().open(filename);
+ int filesize = stream.available();
+ byte[] filebuffer = new byte[filesize];
+ stream.read(filebuffer);
+ stream.close();
+ filecontents = new String(filebuffer);
+ } catch (Exception e) {
+ // I <3 java exceptions
}
+ return filecontents;
+ }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // this removes the title bar (a ~1cm big strip at the top of the app showing its name
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- // we create the webview (at least on the android 14 that is a webview that features avif + websockets etc....)
- // determin why the checking of this did not work
-// int PERMISSION_GRANTED=0;
-// if( checkSelfPermission( Manifest.permission.POST_NOTIFICATIONS) == PERMISSION_GRANTED)
-// {
- try {
- requestPermissions( new String[] {Manifest.permission.POST_NOTIFICATIONS},1);
- } catch (Exception e) { } ;
- WebView myWebView = new WebView(this);//activityContext);
-// MyJavascriptInterface myJavaScriptInterface = new MyJavascriptInterface(this,myWebView);
- // we create a webview (there is also setwebviewclient-vs-setwebchromeclient
-// WebViewClient myWebViewClient= new WebViewClient();
-// myWebView.setWebViewClient(myWebViewClient);
- WebChromeClient myWebChromeClient= new WebChromeClient();
- myWebView.setWebChromeClient(myWebChromeClient);
-
- setupNotificationChannelShit();
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ // this removes the title bar (a ~1cm big strip at the top of the app showing its name
+ this.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ // we create the webview (at least on the android 14 that is a webview that features avif + websockets etc....)
+ // determin why the checking of this did not work
+// int PERMISSION_GRANTED=0;
+// if( checkSelfPermission( Manifest.permission.POST_NOTIFICATIONS) == PERMISSION_GRANTED)
+// {
+ try {
+ requestPermissions( new String[] {Manifest.permission.POST_NOTIFICATIONS},1);
+ } catch (Exception e) { } ;
+ WebView myWebView = new WebView(this);//activityContext);
+// MyJavascriptInterface myJavaScriptInterface = new MyJavascriptInterface(this,myWebView);
+ // we create a webview (there is also setwebviewclient-vs-setwebchromeclient
+// WebViewClient myWebViewClient= new WebViewClient();
+// myWebView.setWebViewClient(myWebViewClient);
+ WebChromeClient myWebChromeClient= new WebChromeClient();
+ myWebView.setWebChromeClient(myWebChromeClient);
+
+ setupNotificationChannelShit();
- // to setup settings
- WebSettings myWebSettings = myWebView.getSettings();
- // enable/disable debugging
- myWebView.setWebContentsDebuggingEnabled(true);
- myWebSettings.setBuiltInZoomControls(true);
- myWebSettings.setDisplayZoomControls(false);
- myWebSettings.setJavaScriptEnabled(true);
- myWebSettings.setDomStorageEnabled(true);
- myWebSettings.setDatabaseEnabled(true);
- myWebSettings.setDatabasePath("/data/data/" + myWebView.getContext().getPackageName() + "/databases/");
- myWebView.addJavascriptInterface(this, "myJavaScriptInterface");
- // load the html from assets file
- String html = readFileFromAssets("index.html");
- myWebView.loadDataWithBaseURL(BASE_URI,html, "text/html", "UTF-8",null);
- //myWebView.loadData(encodedHtml, "text/html", "base64");
- // alternatively this could be to load a website
- //myWebView.loadUrl("https://alexmahr.de/ru");
- setContentView(myWebView);
- }
-
- public void setupNotificationChannelShit(){
- NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
- String id = "my_channel_01";
- int importance = NotificationManager.IMPORTANCE_LOW;
- NotificationChannel mChannel = new NotificationChannel(id, "calender app channel",importance);
- mChannel.setDescription("description");
- mChannel.enableVibration(true);
- mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
- mNotificationManager.createNotificationChannel(mChannel);
- }
+ // to setup settings
+ WebSettings myWebSettings = myWebView.getSettings();
+ // enable/disable debugging
+ myWebView.setWebContentsDebuggingEnabled(true);
+ myWebSettings.setBuiltInZoomControls(true);
+ myWebSettings.setDisplayZoomControls(false);
+ myWebSettings.setJavaScriptEnabled(true);
+ myWebSettings.setDomStorageEnabled(true);
+ myWebSettings.setDatabaseEnabled(true);
+ myWebSettings.setDatabasePath("/data/data/" + myWebView.getContext().getPackageName() + "/databases/");
+ myWebView.addJavascriptInterface(this, "myJavaScriptInterface");
+ // load the html from assets file
+ String html = readFileFromAssets("index.html");
+ myWebView.loadDataWithBaseURL(BASE_URI,html, "text/html", "UTF-8",null);
+ //myWebView.loadData(encodedHtml, "text/html", "base64");
+ // alternatively this could be to load a website
+ //myWebView.loadUrl("https://alexmahr.de/ru");
+ setContentView(myWebView);
+ }
- @JavascriptInterface
- public String androidNotification(String message,String title,int id) {
- Notification notif = new Notification.Builder(this)
- .setContentTitle(title)
- .setContentText(message)
- .setSmallIcon(getResources().getIdentifier("appicon", "drawable", getPackageName()))
- .setChannelId("my_channel_01")
- .build();
- NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
- nm.notify(id, notif);
- return message+ title+"this is good";
- }
- @JavascriptInterface
- public String toString() {
-// this.webview.evaluateJavascript("(setTimeout(()=>{document.body.innerHTML='all gone';},2000)()",null);
- return "this is good";
- }
+ @JavascriptInterface
+ public String setAlarm(){
+ Intent myIntent = new Intent(getBaseContext(), MyReceiver.class);
+ PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, PendingIntent.FLAG_MUTABLE );
+ AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(System.currentTimeMillis());
+ calendar.add(Calendar.SECOND, 5);
+ long interval = 10 * 1000; //
+ alarmManager.setExact(AlarmManager.RTC_WAKEUP,system.currentTimeMillis()+10000 , pendingIntent);
+// alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), interval, pendingIntent);
+ return "alarm set";
+ }
+
+ public void setupNotificationChannelShit(){
+ NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+ String id = "my_channel_01";
+ int importance = NotificationManager.IMPORTANCE_LOW;
+ NotificationChannel mChannel = new NotificationChannel(id, "calender app channel",importance);
+ mChannel.setDescription("description");
+ mChannel.enableVibration(true);
+ mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
+ mNotificationManager.createNotificationChannel(mChannel);
+ }
+
+ @JavascriptInterface
+ public String androidNotification(String message,String title,int id) {
+ Notification notif = new Notification.Builder(this)
+ .setContentTitle(title)
+ .setContentText(message)
+ .setSmallIcon(getResources().getIdentifier("appicon", "drawable", getPackageName()))
+ .setChannelId("my_channel_01")
+ .build();
+ NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+ nm.notify(id, notif);
+ return message+ title+"this is good";
+ }
+ @JavascriptInterface
+ public String toString() {
+// this.webview.evaluateJavascript("(setTimeout(()=>{document.body.innerHTML='all gone';},2000)()",null);
+ return "this is good";
+ }
}
diff --git a/app/src/calender/app/MyReceiver.java b/app/src/calender/app/MyReceiver.java
new file mode 100644
index 0000000..44050a6
--- /dev/null
+++ b/app/src/calender/app/MyReceiver.java
@@ -0,0 +1,43 @@
+package calender.app;
+import android.provider.Settings ;
+import android.content.Intent;
+import android.util.Log;
+import android.app.Activity;
+import android.app.NotificationChannel;
+import android.os.Bundle;
+import android.os.Environment;
+//import android.view.MenuItem;
+import android.view.*;
+// for WebView,WebMessage,WebMessagePort,
+import android.webkit.*;
+import android.net.Uri;
+import org.json.JSONObject;
+import java.io.InputStream;
+import java.io.File;
+import java.util.Objects;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.Manifest;
+import java.util.Calendar;
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.BroadcastReceiver;
+import android.util.Log;
+//import android.graphics.Bitmap;
+//import android.graphics.drawable.Icon;
+
+
+public class MyReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.i("myapp","onReceive CALLED");
+ Intent myIntent =new Intent(context, AppActivity.class);
+ myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(myIntent);
+ System.out.println("Receiver Call");
+ }
+
+}
+