Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,7 @@ local.properties
.signing/

# User-specific configurations
.idea/gradle.xml
.idea/runConfigurations.xml
.idea/libraries/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/vcs.xml
.idea
*.iml

# OS-specific files
Expand All @@ -37,4 +25,4 @@ local.properties
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Thumbs.db
3 changes: 2 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/build
/app.iml
/app.iml
/release
21 changes: 15 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "com.example.yink.amadeus.kurisutina"
minSdkVersion 9
targetSdkVersion 20
minSdkVersion 14
targetSdkVersion 27
versionCode 1
versionName "0.9.6-alpha.5"
}
Expand All @@ -18,9 +18,18 @@ android {
}
productFlavors {
}

lintOptions {
checkReleaseBuilds false
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.3.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
}
15 changes: 11 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.yink.amadeus">

<uses-permission android:name="android.permission.RECORD_AUDIO" />
Expand All @@ -8,15 +9,18 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:theme="@style/AppTheme"
android:allowBackup="true"
android:fullBackupContent="true"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".MainActivity"
android:parentActivityName=".LaunchActivity"
android:screenOrientation="portrait">
android:screenOrientation="portrait"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".LaunchActivity" />
Expand All @@ -37,7 +41,8 @@
android:name=".SettingsActivity"
android:label="Preferences"
android:parentActivityName=".LaunchActivity"
android:theme="@style/PreferenceTheme">
android:theme="@style/PreferenceTheme"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".LaunchActivity" />
Expand All @@ -64,6 +69,8 @@
android:label="AlarmBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
Expand Down
31 changes: 21 additions & 10 deletions app/src/main/java/com/example/yink/amadeus/Alarm.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ static void start(Context context, int ringtone) {

if (settings.getBoolean("vibrate", false)) {
v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = {500, 2000};
v.vibrate(pattern, 0);
if (v != null) {
long[] pattern = {500, 2000};
v.vibrate(pattern, 0);
}
}

m = MediaPlayer.create(context, ringtone);
Expand All @@ -54,17 +56,23 @@ static void cancel(Context context) {

if (isPlaying) {
settings = PreferenceManager.getDefaultSharedPreferences(context);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(context, AlarmReceiver.class);
final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, ALARM_ID, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("alarm_toggle", false);
editor.apply();

Intent alarmIntent = new Intent(context, AlarmReceiver.class);
final PendingIntent pendingIntent =
PendingIntent.getBroadcast(context, ALARM_ID, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (alarmManager != null) {
alarmManager.cancel(pendingIntent);
}
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null) {
notificationManager.cancel(ALARM_NOTIFICATION_ID);
}
m.release();
notificationManager.cancel(ALARM_NOTIFICATION_ID);
alarmManager.cancel(pendingIntent);
releaseCpuLock();
isPlaying = false;
if (v != null) {
Expand All @@ -86,11 +94,14 @@ private static void acquireCpuWakeLock(Context context) {

PowerManager pm =
(PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (pm == null) {
return;
}
sCpuWakeLock = pm.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.ON_AFTER_RELEASE, TAG);
sCpuWakeLock.acquire();
sCpuWakeLock.acquire(10*60*1000L /*10 minutes*/);
}

private static void releaseCpuLock() {
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/com/example/yink/amadeus/AlarmActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

public class AlarmActivity extends AppCompatActivity {

private final String TAG = "AlarmActivity";
private static final String TAG = "AlarmActivity";

private AlarmManager alarmManager;
private PendingIntent pendingIntent;
Expand All @@ -32,8 +32,8 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
alarmTimePicker = (TimePicker) findViewById(R.id.alarmTimePicker);
alarmToggle = (ToggleButton) findViewById(R.id.alarmToggle);
alarmTimePicker = findViewById(R.id.alarmTimePicker);
alarmToggle = findViewById(R.id.alarmToggle);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
pendingIntent = PendingIntent.getBroadcast(this, Alarm.ALARM_ID, new Intent(this, AlarmReceiver.class), PendingIntent.FLAG_CANCEL_CURRENT);

Expand Down
19 changes: 11 additions & 8 deletions app/src/main/java/com/example/yink/amadeus/AlarmBootReceiver.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,38 @@

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.v4.content.WakefulBroadcastReceiver;
import android.util.Log;

public class AlarmBootReceiver extends WakefulBroadcastReceiver {
public class AlarmBootReceiver extends BroadcastReceiver {

final String TAG = "AlarmBootReceiver";
private static final String TAG = "AlarmBootReceiver";

@Override
public void onReceive(Context context, Intent intent) {

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);

if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())
if (("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()) || "android.intent.action.QUICKBOOT_POWERON".equals(intent.getAction()))
&& settings.getBoolean("alarm_toggle", false)) {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(
Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
Alarm.ALARM_ID, new Intent(context, AlarmReceiver.class), 0);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, settings.getLong("alarm_time", 0), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, settings.getLong("alarm_time", 0), pendingIntent);
if (alarmManager != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, settings.getLong("alarm_time", 0), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, settings.getLong("alarm_time", 0), pendingIntent);
}
}

Log.d(TAG, "Alarm has been recovered");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

public class AlarmReceiver extends BroadcastReceiver {

private final String TAG = "AlarmReceiver";
private static final String TAG = "AlarmReceiver";

@Override
public void onReceive(Context context, Intent intent) {
Expand Down
18 changes: 15 additions & 3 deletions app/src/main/java/com/example/yink/amadeus/AlarmService.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
package com.example.yink.amadeus;

import android.app.IntentService;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.v4.app.NotificationCompat;

public class AlarmService extends IntentService {

private static final String CHANNEL_ID = "amadeus_channel_alarm";

public AlarmService() {
super("AlarmService");
}
Expand All @@ -25,13 +29,21 @@ private void sendNotification(String msg) {
NotificationManager alarmNotificationManager = (NotificationManager) this
.getSystemService(Context.NOTIFICATION_SERVICE);

if (alarmNotificationManager == null) {
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
alarmNotificationManager.createNotificationChannel(new NotificationChannel(CHANNEL_ID, getString(R.string.pref_alarm), NotificationManager.IMPORTANCE_HIGH));
}

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, LaunchActivity.class), 0);

NotificationCompat.Builder alarmNotificationBuilder = new NotificationCompat.Builder(
this).setContentTitle(getString(R.string.app_name)).setSmallIcon(R.drawable.incoming_call)
NotificationCompat.Builder alarmNotificationBuilder = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle(getString(R.string.app_name)).setSmallIcon(R.drawable.incoming_call)
.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.setContentText(msg);
.setContentText(msg)
.setChannelId(CHANNEL_ID);

alarmNotificationBuilder.setContentIntent(contentIntent);
alarmNotificationManager.notify(Alarm.ALARM_NOTIFICATION_ID, alarmNotificationBuilder.build());
Expand Down
Loading