143 lines
4.1 KiB
Objective-C
143 lines
4.1 KiB
Objective-C
//
|
|
// MLSoundsTableViewController.m
|
|
// Monal
|
|
//
|
|
// Created by Anurodh Pokharel on 11/27/18.
|
|
// Copyright © 2018 Monal.im. All rights reserved.
|
|
//
|
|
|
|
#import "HelperTools.h"
|
|
#import "MLSoundsTableViewController.h"
|
|
#import "MLSettingCell.h"
|
|
#import "MLImageManager.h"
|
|
@import AVFoundation;
|
|
|
|
@interface MLSoundsTableViewController ()
|
|
@property (nonatomic, strong) NSArray* soundList;
|
|
@property (nonatomic, assign) NSInteger selectedIndex;
|
|
@property (nonatomic, strong) AVAudioPlayer* audioPlayer;
|
|
@end
|
|
|
|
@implementation MLSoundsTableViewController
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
self.title = NSLocalizedString(@"Sounds", @"");
|
|
self.soundList = @[
|
|
@"System Sound",
|
|
@"Morse",
|
|
@"Xylophone",
|
|
@"Bloop",
|
|
@"Bing",
|
|
@"Pipa",
|
|
@"Water",
|
|
@"Forest",
|
|
@"Echo",
|
|
@"Area 51",
|
|
@"Wood",
|
|
@"Chirp",
|
|
@"Sonar",
|
|
];
|
|
}
|
|
|
|
- (void)didReceiveMemoryWarning
|
|
{
|
|
[super didReceiveMemoryWarning];
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
#pragma mark - Table view data source
|
|
|
|
-(NSInteger) numberOfSectionsInTableView:(UITableView*) tableView
|
|
{
|
|
return 2;
|
|
}
|
|
|
|
-(NSInteger) tableView:(UITableView*) tableView numberOfRowsInSection:(NSInteger) section
|
|
{
|
|
if(section == 0)
|
|
return 1;
|
|
else
|
|
return (NSInteger)self.soundList.count;
|
|
}
|
|
|
|
-(NSString*) tableView:(UITableView*) tableView titleForHeaderInSection:(NSInteger) section
|
|
{
|
|
if(section == 1)
|
|
return NSLocalizedString(@"Select sounds that are played with new message notifications. Default is Xylophone.", @"");
|
|
return nil;
|
|
}
|
|
|
|
-(NSString*) tableView:(UITableView*) tableView titleForFooterInSection:(NSInteger) section
|
|
{
|
|
if(section == 1)
|
|
return NSLocalizedString(@"Sounds courtesy Emrah", @"");
|
|
return nil;
|
|
}
|
|
|
|
-(UITableViewCell*) tableView:(UITableView*) tableView cellForRowAtIndexPath:(NSIndexPath*) indexPath
|
|
{
|
|
if(indexPath.section == 0)
|
|
{
|
|
MLSettingCell* cell = [[MLSettingCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"AccountCell"];
|
|
cell.parent = self;
|
|
cell.switchEnabled = YES;
|
|
cell.defaultKey = @"Sound";
|
|
cell.textLabel.text = NSLocalizedString(@"Play Sounds", @"");
|
|
return cell;
|
|
}
|
|
else
|
|
{
|
|
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"soundCell"];
|
|
cell.textLabel.text = self.soundList[(NSUInteger)indexPath.row];
|
|
NSString* filename = [NSString stringWithFormat:@"alert%ld", (long)indexPath.row];
|
|
if(
|
|
(indexPath.row == 0 && [[HelperTools defaultsDB] objectForKey:@"AlertSoundFile"] == nil) ||
|
|
[filename isEqualToString:[[HelperTools defaultsDB] objectForKey:@"AlertSoundFile"]]
|
|
)
|
|
{
|
|
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
|
self.selectedIndex = indexPath.row;
|
|
}
|
|
else
|
|
{
|
|
cell.accessoryType = UITableViewCellAccessoryNone;
|
|
}
|
|
return cell;
|
|
}
|
|
}
|
|
|
|
|
|
-(void) playSound:(NSInteger ) index
|
|
{
|
|
NSString* filename = [NSString stringWithFormat:@"alert%ld", (long)index];
|
|
NSURL* url = [[NSBundle mainBundle] URLForResource:filename withExtension:@"aif" subdirectory:@"AlertSounds"];
|
|
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
|
|
[self.audioPlayer play];
|
|
}
|
|
|
|
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
|
{
|
|
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
|
if(indexPath.section==0)
|
|
return;
|
|
|
|
NSString* filename = nil;
|
|
if(indexPath.row > 0)
|
|
{
|
|
[self playSound:indexPath.row];
|
|
filename = [NSString stringWithFormat:@"alert%ld", (long)indexPath.row];
|
|
[[HelperTools defaultsDB] setObject:filename forKey:@"AlertSoundFile"];
|
|
}
|
|
else
|
|
[[HelperTools defaultsDB] removeObjectForKey:@"AlertSoundFile"];
|
|
NSIndexPath* old = [NSIndexPath indexPathForRow:self.selectedIndex inSection:1];
|
|
self.selectedIndex = indexPath.row;
|
|
NSArray* rows = @[old, indexPath];
|
|
[tableView reloadRowsAtIndexPaths:rows withRowAnimation:UITableViewRowAnimationNone];
|
|
}
|
|
|
|
|
|
@end
|
|
|