From 71be8e90c8d9b818d7d38d7d036ea43a8f604a91 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Mon, 24 Sep 2018 10:35:49 +0300 Subject: [PATCH 1/3] cleanups --- .../axet/audiorecorder/services/RecordingService.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 11e2559..03a31de 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,5 +1,6 @@ package com.github.axet.audiorecorder.services; +import android.annotation.SuppressLint; import android.app.Notification; import android.app.PendingIntent; import android.app.Service; @@ -14,6 +15,7 @@ import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationManagerCompat; +import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.view.View; import android.widget.ImageView; @@ -115,7 +117,6 @@ public class RecordingService extends Service { @Override public void onCreate() { - setTheme(MainApplication.getTheme(this, R.style.RecThemeLight, R.style.RecThemeDark)); super.onCreate(); Log.d(TAG, "onCreate"); @@ -168,6 +169,7 @@ public class RecordingService extends Service { showNotificationAlarm(false, null); } + @SuppressLint("RestrictedApi") public Notification build(Intent intent) { String targetFile = intent.getStringExtra("targetFile"); boolean recording = intent.getBooleanExtra("recording", false); @@ -187,8 +189,9 @@ public class RecordingService extends Service { RemoteViews view = new RemoteViews(getPackageName(), MainApplication.getTheme(this, R.layout.notifictaion_recording_light, R.layout.notifictaion_recording_dark)); - RemoteViewsCompat.setImageViewTint(view, R.id.icon_circle, ThemeUtils.getThemeColor(this, R.attr.colorButtonNormal)); // android:tint="?attr/colorButtonNormal" not working API16 - RemoteViewsCompat.applyTheme(this, view); + ContextThemeWrapper theme = new ContextThemeWrapper(this, MainApplication.getTheme(this, R.style.RecThemeLight, R.style.RecThemeDark)); + RemoteViewsCompat.setImageViewTint(view, R.id.icon_circle, ThemeUtils.getThemeColor(theme, R.attr.colorButtonNormal)); // android:tint="?attr/colorButtonNormal" not working API16 + RemoteViewsCompat.applyTheme(theme, view); String title; String text; From 4de1a664a63b893208fb9c8bbb660f5b5b349c51 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Tue, 25 Sep 2018 14:34:19 +0300 Subject: [PATCH 2/3] rename app ru --- app/build.gradle | 4 +- .../audiorecorder/app/MainApplication.java | 93 ++++++++++++++----- .../services/RecordingService.java | 3 +- app/src/main/res/values-ru/strings.xml | 2 +- build.gradle | 2 +- 5 files changed, 77 insertions(+), 27 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bf01bc2..071287d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ import com.android.build.OutputFile android { compileSdkVersion 25 - buildToolsVersion '27.0.3' + buildToolsVersion '28.0.2' defaultConfig { applicationId "com.github.axet.audiorecorder" @@ -57,5 +57,5 @@ android { dependencies { testImplementation 'junit:junit:4.12' - implementation 'com.github.axet:android-audio-library:1.0.121' // implementation project(':android-audio-library') + implementation 'com.github.axet:android-audio-library:1.0.123' // implementation project(':android-audio-library') } 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 dcedce1..e81fcdb 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 @@ -1,16 +1,29 @@ package com.github.axet.audiorecorder.app; +import android.annotation.SuppressLint; +import android.app.Notification; +import android.app.PendingIntent; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Build; +import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationManagerCompat; import android.support.v7.preference.PreferenceManager; +import android.support.v7.view.ContextThemeWrapper; +import android.view.View; +import android.widget.RemoteViews; import com.github.axet.androidlibrary.widgets.NotificationChannelCompat; +import com.github.axet.androidlibrary.widgets.RemoteViewsCompat; +import com.github.axet.androidlibrary.widgets.ThemeUtils; import com.github.axet.audiolibrary.encoders.FormatFLAC; import com.github.axet.audiolibrary.encoders.FormatM4A; import com.github.axet.audiolibrary.encoders.FormatOGG; import com.github.axet.audiorecorder.R; +import com.github.axet.audiorecorder.activities.MainActivity; + +import java.util.Locale; public class MainApplication extends com.github.axet.audiolibrary.app.MainApplication { @@ -36,29 +49,26 @@ public class MainApplication extends com.github.axet.audiolibrary.app.MainApplic @Override public void onCreate() { super.onCreate(); - final SharedPreferences defaultValueSp = getSharedPreferences(PreferenceManager.KEY_HAS_SET_DEFAULT_VALUES, Context.MODE_PRIVATE); - if (!defaultValueSp.getBoolean(PreferenceManager.KEY_HAS_SET_DEFAULT_VALUES, false)) { - PreferenceManager.setDefaultValues(this, R.xml.pref_general, false); - if (!FormatOGG.supported(this)) { + switch (getVersion(PREFERENCE_VERSION, R.xml.pref_general)) { + case -1: SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor edit = shared.edit(); - if (Build.VERSION.SDK_INT >= 18) - edit.putString(MainApplication.PREFERENCE_ENCODING, FormatM4A.EXT); - else - edit.putString(MainApplication.PREFERENCE_ENCODING, FormatFLAC.EXT); + if (!FormatOGG.supported(this)) { + if (Build.VERSION.SDK_INT >= 18) + edit.putString(MainApplication.PREFERENCE_ENCODING, FormatM4A.EXT); + else + edit.putString(MainApplication.PREFERENCE_ENCODING, FormatFLAC.EXT); + } + edit.putInt(PREFERENCE_VERSION, 2); edit.commit(); - } - SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); - SharedPreferences.Editor edit = shared.edit(); - edit.putInt(PREFERENCE_VERSION, 1); - edit.commit(); - } else { // second start, check version - SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); - switch (shared.getInt(PREFERENCE_VERSION, 0)) { - case 0: - version_0_to_1(); - break; - } + break; + case 0: + version_0_to_1(); + version_1_to_2(); + break; + case 1: + version_1_to_2(); + break; } setTheme(getUserTheme()); } @@ -66,9 +76,50 @@ public class MainApplication extends com.github.axet.audiolibrary.app.MainApplic void version_0_to_1() { SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor edit = shared.edit(); - edit.putInt(PREFERENCE_VERSION, 1); edit.putFloat(PREFERENCE_VOLUME, shared.getFloat(PREFERENCE_VOLUME, 0) + 1); // update volume from 0..1 to 0..1..4 + edit.putInt(PREFERENCE_VERSION, 1); edit.commit(); } + @SuppressLint("RestrictedApi") + void version_1_to_2() { + Locale locale = Locale.getDefault(); + if (locale.toString().startsWith("ru")) { + String title = "Программа переименована"; + String text = "'Аудио Рекордер' -> '" + getString(R.string.app_name) + "'"; + PendingIntent main = PendingIntent.getService(this, 0, + new Intent(this, MainActivity.class), + PendingIntent.FLAG_UPDATE_CURRENT); + RemoteViews view = new RemoteViews(getPackageName(), MainApplication.getTheme(this, R.layout.notifictaion_recording_light, R.layout.notifictaion_recording_dark)); + ContextThemeWrapper theme = new ContextThemeWrapper(this, MainApplication.getTheme(this, R.style.RecThemeLight, R.style.RecThemeDark)); + RemoteViewsCompat.setImageViewTint(view, R.id.icon_circle, ThemeUtils.getThemeColor(theme, R.attr.colorButtonNormal)); // android:tint="?attr/colorButtonNormal" not working API16 + RemoteViewsCompat.applyTheme(theme, view); + view.setViewVisibility(R.id.notification_record, View.GONE); + view.setViewVisibility(R.id.notification_pause, View.GONE); + view.setOnClickPendingIntent(R.id.status_bar_latest_event_content, main); + view.setTextViewText(R.id.notification_title, title); + view.setTextViewText(R.id.notification_text, text); + NotificationCompat.Builder builder = new NotificationCompat.Builder(this) + .setContentTitle(title) + .setContentText(text) + .setTicker(title) + .setSmallIcon(R.drawable.ic_mic) + .setContent(view); + + if (Build.VERSION.SDK_INT < 11) + builder.setContentIntent(main); + + if (Build.VERSION.SDK_INT >= 21) + builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC); + + Notification n = builder.build(); + channelStatus.apply(n); + NotificationManagerCompat nm = NotificationManagerCompat.from(this); + nm.notify((int) System.currentTimeMillis(), n); + } + SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences.Editor edit = shared.edit(); + edit.putInt(PREFERENCE_VERSION, 2); + edit.commit(); + } } 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 03a31de..0e78922 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 @@ -235,9 +235,8 @@ public class RecordingService extends Service { .setSmallIcon(R.drawable.ic_mic) .setContent(view); - if (Build.VERSION.SDK_INT < 11) { + if (Build.VERSION.SDK_INT < 11) builder.setContentIntent(main); - } if (Build.VERSION.SDK_INT >= 21) builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC); diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c1ae028..9307d66 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,5 +1,5 @@ - Аудио Рекордер + Диктофон Тема Светлая diff --git a/build.gradle b/build.gradle index 36c67b3..9927a18 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.0-alpha14' + classpath 'com.android.tools.build:gradle:3.2.0' } } From c9f82251427c6454d0a877ca75340bcd8af94d4f Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Tue, 25 Sep 2018 14:34:50 +0300 Subject: [PATCH 3/3] Bump version audiorecorder-3.2.21 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 071287d..f61f4db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 9 targetSdkVersion 23 // 24+ file:// unable to open - versionCode 278 - versionName "3.2.20" + versionCode 279 + versionName "3.2.21" } signingConfigs { release {