Skip to content

Commit

Permalink
Some refactoring, removed unnecessary permissions in the manifest, bu…
Browse files Browse the repository at this point in the history
…mp version to 1.0-beta11
  • Loading branch information
Andrewerr committed Nov 18, 2021
1 parent d0732b1 commit 2b36c93
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 27 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ android {
applicationId "com.polar.nextcloudservices"
minSdkVersion 25
targetSdkVersion 29
versionCode 10
versionName '1.0-beta10'
versionCode 11
versionName '1.0-beta11'

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
5 changes: 0 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@
<!-- Permissions for old android versions -->
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />

<queries>
<package android:name="com.nextcloud.client" />
Expand Down Expand Up @@ -47,7 +43,6 @@
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.polar.nextcloudservices.NotificationProcessors;
package com.polar.nextcloudservices;

import android.app.NotificationManager;
import android.content.Context;

import androidx.core.app.NotificationCompat;

Expand All @@ -11,5 +12,6 @@ public interface AbstractNotificationProcessor {
public int priority=0;
public NotificationCompat.Builder updateNotification(int id, NotificationCompat.Builder builder,
NotificationManager manager,
JSONObject rawNotification) throws JSONException;
JSONObject rawNotification,
Context context) throws JSONException;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.polar.nextcloudservices.NotificationProcessors;
package com.polar.nextcloudservices;

import android.app.Notification;
import android.app.NotificationManager;
Expand All @@ -7,6 +7,8 @@

import androidx.core.app.NotificationCompat;

import com.polar.nextcloudservices.AbstractNotificationProcessor;

import org.json.JSONException;
import org.json.JSONObject;

Expand All @@ -25,7 +27,8 @@ public Notification buildNotification(int id, JSONObject rawNotification, Contex
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, rawNotification.getString("app"));
for(int i=0; i<processors.size(); ++i){
Log.d(TAG, "Will call notification processor: "+processors.get(i).toString());
mBuilder = processors.get(i).updateNotification(id, mBuilder, mNotificationManager, rawNotification);
mBuilder = processors.get(i).updateNotification(id, mBuilder, mNotificationManager,
rawNotification, context);
}
return mBuilder.build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package com.polar.nextcloudservices.NotificationProcessors;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.util.Log;

import androidx.core.app.NotificationCompat;

import com.polar.nextcloudservices.AbstractNotificationProcessor;
import com.polar.nextcloudservices.R;

import org.json.JSONException;
Expand Down Expand Up @@ -44,7 +45,7 @@ public static String prettifyChannelName(String Name) {
}

@Override
public NotificationCompat.Builder updateNotification(int id, NotificationCompat.Builder builder, NotificationManager manager, JSONObject rawNotification) throws JSONException {
public NotificationCompat.Builder updateNotification(int id, NotificationCompat.Builder builder, NotificationManager manager, JSONObject rawNotification, Context context) throws JSONException {
final String app = prettifyChannelName(rawNotification.getString("app"));
final String title = rawNotification.getString("subject");
final String text = rawNotification.getString("message");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.polar.nextcloudservices.NotificationProcessors;

// This processor is default processor for user click event
// It is used to open web page and has priority 1
// So it is executed first and can be overriden by per-app processors


import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;

import androidx.core.app.NotificationCompat;

import com.polar.nextcloudservices.AbstractNotificationProcessor;

import org.json.JSONException;
import org.json.JSONObject;

public class OpenBrowserProcessor implements AbstractNotificationProcessor {
public final int priority = 1;
@Override
public NotificationCompat.Builder updateNotification(int id, NotificationCompat.Builder builder,
NotificationManager manager,
JSONObject rawNotification,
Context context) throws JSONException {
String link = rawNotification.getString("link");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent = intent.setData(Uri.parse((link)));
PendingIntent pending_intent = PendingIntent.getActivity(context,0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
return builder.setContentIntent(pending_intent);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import android.app.Notification;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Network;


import androidx.core.app.NotificationCompat;
Expand All @@ -25,30 +24,18 @@
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Timer;
import java.util.TimerTask;
import java.net.*;

import android.util.Base64;


import com.google.gson.GsonBuilder;
import com.nextcloud.android.sso.api.NextcloudAPI;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException;
import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
import com.nextcloud.android.sso.model.SingleSignOnAccount;
import com.polar.nextcloudservices.NotificationProcessors.BasicNotificationProcessor;
import com.polar.nextcloudservices.NotificationProcessors.NotificationBuilder;

import javax.net.ssl.HttpsURLConnection;
import com.polar.nextcloudservices.NotificationProcessors.OpenBrowserProcessor;

class PollTask extends AsyncTask<NotificationService, Void, JSONObject> {
private final String TAG = "NotifcationService.PollTask";
Expand Down Expand Up @@ -81,6 +68,7 @@ private void registerNotificationProcessors(){
}
//Register your notification processors here
mNotificationBuilder.addProcessor(new BasicNotificationProcessor());
mNotificationBuilder.addProcessor(new OpenBrowserProcessor());
}

private NextcloudAPI.ApiConnectedListener apiCallback = new NextcloudAPI.ApiConnectedListener() {
Expand Down
3 changes: 3 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/11.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* Added credits(thanks to @Devansh-gaur-1611)
* Added app queries for Nextcloud SSO authentication
* Now app notifcation opens browser when clicked

0 comments on commit 2b36c93

Please sign in to comment.