diff --git a/app/build.gradle b/app/build.gradle index 202bc3f..0e51736 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 16 targetSdkVersion 23 - versionCode 56 - versionName "1.1.35" + versionCode 57 + versionName "git" } signingConfigs { release { 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 03082ce..8fbbd75 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 @@ -1,6 +1,7 @@ package com.github.axet.audiorecorder.activities; import android.Manifest; +import android.app.ActionBar; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; @@ -8,6 +9,9 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; @@ -35,6 +39,7 @@ import android.widget.TextView; import android.widget.Toast; import com.github.axet.androidlibrary.widgets.OpenFileDialog; +import com.github.axet.androidlibrary.widgets.ThemeUtils; import com.github.axet.audiorecorder.R; import com.github.axet.audiorecorder.animations.RecordingAnimation; import com.github.axet.androidlibrary.animations.RemoveItemAnimation; @@ -437,7 +442,7 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTheme(((MainApplication) getApplication()).getMainTheme()); + setTheme(MainApplication.getTheme(this, R.style.AppThemeLight_NoActionBar, R.style.AppThemeDark_NoActionBar)); setContentView(R.layout.activity_main); @@ -449,6 +454,7 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr handler = new Handler(); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + toolbar.setBackground(new ColorDrawable(MainApplication.getActionbarColor(this))); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); @@ -503,8 +509,8 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { - Intent intent = new Intent(this, SettingsActivity.class); - startActivity(intent); + finish(); + startActivity(new Intent(this, SettingsActivity.class)); return true; } diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java index 1670e24..716f717 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java @@ -11,6 +11,7 @@ import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Point; +import android.graphics.drawable.ColorDrawable; import android.media.AudioFormat; import android.media.AudioRecord; import android.media.AudioTrack; @@ -21,6 +22,7 @@ import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; +import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; @@ -152,6 +154,8 @@ public class RecordingActivity extends AppCompatActivity { setContentView(R.layout.activity_recording); + setupActionBar(); + pitch = (PitchView) findViewById(R.id.recording_pitch); time = (TextView) findViewById(R.id.recording_time); state = (TextView) findViewById(R.id.recording_state); @@ -248,6 +252,13 @@ public class RecordingActivity extends AppCompatActivity { registerReceiver(receiver, filter); } + private void setupActionBar() { + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setBackgroundDrawable(new ColorDrawable(MainApplication.getActionbarColor(this))); + } + } + void loadSamples() { if (!storage.getTempRecording().exists()) { updateSamples(0); diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java index 4fa81ae..46a7c54 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java @@ -9,6 +9,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.res.Configuration; +import android.graphics.drawable.ColorDrawable; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; @@ -22,11 +23,14 @@ import android.preference.PreferenceManager; import android.preference.RingtonePreference; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; +import android.support.v4.content.IntentCompat; import android.support.v7.app.ActionBar; +import android.util.Log; import android.view.MenuItem; import android.widget.ListView; import android.widget.Toast; +import com.github.axet.androidlibrary.widgets.ThemeUtils; import com.github.axet.audiorecorder.R; import com.github.axet.audiorecorder.app.MainApplication; @@ -139,6 +143,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity implements Sha if (actionBar != null) { // Show the Up button in the action bar. actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setBackgroundDrawable(new ColorDrawable(MainApplication.getActionbarColor(this))); } } @@ -163,6 +168,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity implements Sha public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { + finish(); startActivity(new Intent(this, MainActivity.class)); return true; } @@ -203,7 +209,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity implements Sha @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if(key.equals(MainApplication.PREFERENCE_THEME)) { + if (key.equals(MainApplication.PREFERENCE_THEME)) { finish(); startActivity(new Intent(this, SettingsActivity.class)); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); @@ -218,6 +224,12 @@ public class SettingsActivity extends AppCompatPreferenceActivity implements Sha shared.unregisterOnSharedPreferenceChangeListener(this); } + @Override + public void onBackPressed() { + finish(); + startActivity(new Intent(this, MainActivity.class)); + } + /** * This fragment shows general preferences only. It is used when the * activity is showing a two-pane settings UI. @@ -256,6 +268,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity implements Sha public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { + getActivity().finish(); startActivity(new Intent(getActivity(), MainActivity.class)); return true; } 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 5e1e7b6..8b86d81 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 @@ -30,24 +30,24 @@ public class MainApplication extends Application { context.setTheme(getUserTheme()); } - public int getUserTheme() { - final SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); - String theme = shared.getString(MainApplication.PREFERENCE_THEME, ""); + public static int getTheme(Context context, int light, int dark) { + final SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(context); + String theme = shared.getString(PREFERENCE_THEME, ""); if (theme.equals("Theme_Dark")) { - return R.style.AppThemeDark; + return dark; } else { - return R.style.AppThemeLight; + return light; } } - public int getMainTheme() { - final SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); - String theme = shared.getString(MainApplication.PREFERENCE_THEME, ""); - if (theme.equals("Theme_Dark")) { - return R.style.AppThemeDark_NoActionBar; - } else { - return R.style.AppThemeLight_NoActionBar; - } + public static int getActionbarColor(Context context) { + int colorId = MainApplication.getTheme(context, android.R.attr.colorPrimary, R.attr.secondBackground); + int color = ThemeUtils.getThemeColor(context, colorId); + return color; + } + + public int getUserTheme() { + return getTheme(this, R.style.AppThemeLight, R.style.AppThemeDark); } static public String formatTime(int tt) { 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 b05f623..1bebc8e 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 @@ -138,25 +138,15 @@ public class RecordingService extends Service { new Intent(this, RecordingService.class).setAction(PAUSE_BUTTON), PendingIntent.FLAG_UPDATE_CURRENT); - RemoteViews view = new RemoteViews(getPackageName(), R.layout.notifictaion_recording); + RemoteViews view = new RemoteViews(getPackageName(), MainApplication.getTheme(getBaseContext(), + R.layout.notifictaion_recording_light, + R.layout.notifictaion_recording_dark)); + view.setOnClickPendingIntent(R.id.status_bar_latest_event_content, main); view.setTextViewText(R.id.notification_text, ".../" + targetFile); view.setOnClickPendingIntent(R.id.notification_pause, pe); view.setImageViewResource(R.id.notification_pause, !recording ? R.drawable.play : R.drawable.pause); - getBaseContext().setTheme(((MainApplication) getApplication()).getUserTheme()); - - view.apply(new ContextWrapper(getBaseContext()) { - public Context createPackageContext(String packageName, int flags) throws PackageManager.NameNotFoundException { - return new ContextWrapper(getBaseContext().createPackageContext(packageName, flags)) { - @Override - public Resources.Theme getTheme() { - return getBaseContext().getTheme(); - } - }; - } - }, null); - NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setOngoing(true) .setContentTitle("Recording") diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e6f67ec..345dd4b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -16,7 +16,6 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" app:popupTheme="@style/AppThemeLight.PopupOverlay" /> diff --git a/app/src/main/res/layout/notifictaion_recording_dark.xml b/app/src/main/res/layout/notifictaion_recording_dark.xml new file mode 100644 index 0000000..e573589 --- /dev/null +++ b/app/src/main/res/layout/notifictaion_recording_dark.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/layout/notifictaion_recording_light.xml b/app/src/main/res/layout/notifictaion_recording_light.xml new file mode 100644 index 0000000..1a71872 --- /dev/null +++ b/app/src/main/res/layout/notifictaion_recording_light.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/layout/recording.xml b/app/src/main/res/layout/recording.xml index 461335b..73225fd 100644 --- a/app/src/main/res/layout/recording.xml +++ b/app/src/main/res/layout/recording.xml @@ -70,8 +70,8 @@ android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" - android:orientation="vertical" android:background="?attr/secondBackground" + android:orientation="vertical" android:padding="5dp"> + android:text="01:01" + android:textColor="?android:textColorSecondary" /> #3F51B5 #303F9F + #33333333 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e798d0b..8b03c3d 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -20,7 +20,7 @@ @color/colorPrimary @color/colorPrimaryDark #a4a4a4 - #5a595b + #151515