diff --git a/app/build.gradle b/app/build.gradle
index 1cc7eb2..0bb84ba 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -57,5 +57,5 @@ android {
dependencies {
testImplementation 'junit:junit:4.12'
- implementation 'com.github.axet:android-audio-library:1.0.118' // implementation project(':android-audio-library')
+ implementation 'com.github.axet:android-audio-library:1.0.120' // implementation project(':android-audio-library')
}
diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java
index fc5a030..efddbdf 100644
--- a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java
+++ b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java
@@ -104,12 +104,12 @@ public class MainActivity extends AppCompatThemeActivity {
receiver = new ScreenReceiver() {
@Override
- public void onReceive(Context context, Intent intent) {
+ public void onScreenOff() {
boolean p = storage.recordingPending();
boolean c = shared.getBoolean(MainApplication.PREFERENCE_CONTROLS, false);
if (!p && !c)
return;
- super.onReceive(context, intent);
+ super.onScreenOff();
}
};
receiver.registerReceiver(this);
diff --git a/app/src/main/java/com/github/axet/audiorecorder/app/MainApplication.java b/app/src/main/java/com/github/axet/audiorecorder/app/MainApplication.java
index a52bace..dcedce1 100644
--- a/app/src/main/java/com/github/axet/audiorecorder/app/MainApplication.java
+++ b/app/src/main/java/com/github/axet/audiorecorder/app/MainApplication.java
@@ -3,8 +3,10 @@ package com.github.axet.audiorecorder.app;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
+import android.support.v4.app.NotificationManagerCompat;
import android.support.v7.preference.PreferenceManager;
+import com.github.axet.androidlibrary.widgets.NotificationChannelCompat;
import com.github.axet.audiolibrary.encoders.FormatFLAC;
import com.github.axet.audiolibrary.encoders.FormatM4A;
import com.github.axet.audiolibrary.encoders.FormatOGG;
@@ -19,10 +21,18 @@ public class MainApplication extends com.github.axet.audiolibrary.app.MainApplic
public static final String PREFERENCE_VERSION = "version";
+ public NotificationChannelCompat channelStatus;
+
public int getUserTheme() {
return getTheme(this, R.style.RecThemeLight, R.style.RecThemeDark);
}
+ @Override
+ protected void attachBaseContext(Context base) {
+ super.attachBaseContext(base);
+ channelStatus = new NotificationChannelCompat(this, "status", "Status", NotificationManagerCompat.IMPORTANCE_LOW);
+ }
+
@Override
public void onCreate() {
super.onCreate();
diff --git a/app/src/main/java/com/github/axet/audiorecorder/services/RecordingService.java b/app/src/main/java/com/github/axet/audiorecorder/services/RecordingService.java
index d74aefc..040da84 100644
--- a/app/src/main/java/com/github/axet/audiorecorder/services/RecordingService.java
+++ b/app/src/main/java/com/github/axet/audiorecorder/services/RecordingService.java
@@ -1,14 +1,11 @@
package com.github.axet.audiorecorder.services;
import android.app.Notification;
-import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
-import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
@@ -16,12 +13,14 @@ import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
import android.util.Log;
import android.view.View;
+import android.widget.ImageView;
import android.widget.RemoteViews;
-import com.github.axet.androidlibrary.widgets.OptimizationPreferenceCompat;
import com.github.axet.androidlibrary.widgets.ProximityShader;
+import com.github.axet.androidlibrary.widgets.ThemeUtils;
import com.github.axet.audiolibrary.app.Storage;
import com.github.axet.audiorecorder.R;
import com.github.axet.audiorecorder.activities.MainActivity;
@@ -48,6 +47,7 @@ public class RecordingService extends Service {
public static String RECORD_BUTTON = RecordingService.class.getCanonicalName() + ".RECORD_BUTTON";
Storage storage; // for storage path
+ Notification notification;
public static void startIfEnabled(Context context) {
SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(context);
@@ -107,14 +107,20 @@ public class RecordingService extends Service {
public RecordingService() {
}
+ @Override
+ protected void attachBaseContext(Context base) {
+ super.attachBaseContext(base);
+ }
+
@Override
public void onCreate() {
+ setTheme(MainApplication.getTheme(this, R.style.RecThemeLight, R.style.RecThemeDark));
super.onCreate();
Log.d(TAG, "onCreate");
storage = new Storage(this);
- startForeground(NOTIFICATION_RECORDING_ICON, build(new Intent()));
+ showNotificationAlarm(true, new Intent());
}
@Override
@@ -158,9 +164,6 @@ public class RecordingService extends Service {
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestory");
-
- stopForeground(false);
-
showNotificationAlarm(false, null);
}
@@ -181,9 +184,9 @@ public class RecordingService extends Service {
new Intent(this, RecordingService.class).setAction(RECORD_BUTTON),
PendingIntent.FLAG_UPDATE_CURRENT);
- RemoteViews view = new RemoteViews(getPackageName(), MainApplication.getTheme(getBaseContext(),
- R.layout.notifictaion_recording_light,
- R.layout.notifictaion_recording_dark));
+ RemoteViews view = new RemoteViews(getPackageName(), MainApplication.getTheme(this, R.layout.notifictaion_recording_light, R.layout.notifictaion_recording_dark));
+
+ view.setInt(R.id.icon_circle, "setColorFilter", ThemeUtils.getThemeColor(this, R.attr.colorButtonNormal)); // android:tint="?attr/colorButtonNormal" not working API16
String title;
String text;
@@ -237,13 +240,20 @@ public class RecordingService extends Service {
return builder.build();
}
- // alarm dismiss button
public void showNotificationAlarm(boolean show, Intent intent) {
- NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+ NotificationManagerCompat nm = NotificationManagerCompat.from(this);
if (!show) {
- notificationManager.cancel(NOTIFICATION_RECORDING_ICON);
+ stopForeground(false);
+ nm.cancel(NOTIFICATION_RECORDING_ICON);
+ notification = null;
} else {
- notificationManager.notify(NOTIFICATION_RECORDING_ICON, build(intent));
+ Notification n = build(intent);
+ ((MainApplication) getApplication()).channelStatus.apply(n);
+ if (notification == null)
+ startForeground(NOTIFICATION_RECORDING_ICON, n);
+ else
+ nm.notify(NOTIFICATION_RECORDING_ICON, n);
+ notification = n;
}
}
diff --git a/app/src/main/res/values-sw700dp/dimens.xml b/app/src/main/res/values-sw700dp/dimens.xml
new file mode 100644
index 0000000..63fc816
--- /dev/null
+++ b/app/src/main/res/values-sw700dp/dimens.xml
@@ -0,0 +1,6 @@
+
+
+ 64dp
+
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index 48f136f..71a8b1f 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -2,6 +2,7 @@
+
mic
default
raw