Skip to content

Commit

Permalink
No static storing of ApplicationContext
Browse files Browse the repository at this point in the history
  • Loading branch information
haraldrudell committed Jul 16, 2023
1 parent 3504e4f commit e08f63e
Show file tree
Hide file tree
Showing 18 changed files with 93 additions and 96 deletions.
4 changes: 2 additions & 2 deletions app/src/main/java/com/dimowner/audiorecorder/ARApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ class ARApplication : Application() {
applicationContext
)
)
injector = Injector(applicationContext)
val prefs = injector!!.providePrefs()
injector = Injector()
val prefs = injector!!.providePrefs(applicationContext)
if (!prefs.isMigratedSettings) {
prefs.migrateSettings()
}
Expand Down
88 changes: 41 additions & 47 deletions app/src/main/java/com/dimowner/audiorecorder/Injector.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@

public class Injector {

private final Context context;

private BackgroundQueue loadingTasks;
private BackgroundQueue recordingTasks;
private BackgroundQueue importTasks;
Expand All @@ -74,33 +72,29 @@ public class Injector {

private AudioPlayerNew audioPlayer = null;

public Injector(Context context) {
this.context = context;
}

public Prefs providePrefs() {
public Prefs providePrefs(Context context) {
return PrefsImpl.getInstance(context);
}

public RecordsDataSource provideRecordsDataSource() {
public RecordsDataSource provideRecordsDataSource(Context context) {
return RecordsDataSource.getInstance(context);
}

public TrashDataSource provideTrashDataSource() {
public TrashDataSource provideTrashDataSource(Context context) {
return TrashDataSource.getInstance(context);
}

public FileRepository provideFileRepository() {
return FileRepositoryImpl.getInstance(context, providePrefs());
public FileRepository provideFileRepository(Context context) {
return FileRepositoryImpl.getInstance(context, providePrefs(context));
}

public LocalRepository provideLocalRepository() {
return LocalRepositoryImpl.getInstance(provideRecordsDataSource(), provideTrashDataSource(), provideFileRepository(), providePrefs());
public LocalRepository provideLocalRepository(Context context) {
return LocalRepositoryImpl.getInstance(provideRecordsDataSource(context), provideTrashDataSource(context), provideFileRepository(context), providePrefs(context));
}

public AppRecorder provideAppRecorder() {
return AppRecorderImpl.getInstance(provideAudioRecorder(), provideLocalRepository(),
provideLoadingTasksQueue(), providePrefs());
public AppRecorder provideAppRecorder(Context context) {
return AppRecorderImpl.getInstance(provideAudioRecorder(context), provideLocalRepository(context),
provideLoadingTasksQueue(), providePrefs(context));
}

public AudioWaveformVisualization provideAudioWaveformVisualization() {
Expand Down Expand Up @@ -142,11 +136,11 @@ public BackgroundQueue provideCopyTasksQueue() {
return copyTasks;
}

public ColorMap provideColorMap() {
return ColorMap.getInstance(providePrefs());
public ColorMap provideColorMap(Context context) {
return ColorMap.getInstance(providePrefs(context));
}

public SettingsMapper provideSettingsMapper() {
public SettingsMapper provideSettingsMapper(Context context) {
return SettingsMapper.getInstance(context);
}

Expand All @@ -161,8 +155,8 @@ public PlayerContractNew.Player provideAudioPlayer() {
return audioPlayer;
}

public RecorderContract.Recorder provideAudioRecorder() {
switch (providePrefs().getSettingRecordingFormat()) {
public RecorderContract.Recorder provideAudioRecorder(Context context) {
switch (providePrefs(context).getSettingRecordingFormat()) {
default:
case AppConstants.FORMAT_M4A:
return AudioRecorder.getInstance();
Expand All @@ -173,77 +167,77 @@ public RecorderContract.Recorder provideAudioRecorder() {
}
}

public MainContract.UserActionsListener provideMainPresenter() {
public MainContract.UserActionsListener provideMainPresenter(Context context) {
if (mainPresenter == null) {
mainPresenter = new MainPresenter(providePrefs(), provideFileRepository(),
provideLocalRepository(), provideAudioPlayer(), provideAppRecorder(),
mainPresenter = new MainPresenter(providePrefs(context), provideFileRepository(context),
provideLocalRepository(context), provideAudioPlayer(), provideAppRecorder(context),
provideRecordingTasksQueue(), provideLoadingTasksQueue(), provideProcessingTasksQueue(),
provideImportTasksQueue(), provideSettingsMapper());
provideImportTasksQueue(), provideSettingsMapper(context));
}
return mainPresenter;
}

public RecordsContract.UserActionsListener provideRecordsPresenter() {
public RecordsContract.UserActionsListener provideRecordsPresenter(Context context) {
if (recordsPresenter == null) {
recordsPresenter = new RecordsPresenter(provideLocalRepository(), provideFileRepository(),
recordsPresenter = new RecordsPresenter(provideLocalRepository(context), provideFileRepository(context),
provideLoadingTasksQueue(), provideRecordingTasksQueue(),
provideAudioPlayer(), provideAppRecorder(), providePrefs());
provideAudioPlayer(), provideAppRecorder(context), providePrefs(context));
}
return recordsPresenter;
}

public SettingsContract.UserActionsListener provideSettingsPresenter() {
public SettingsContract.UserActionsListener provideSettingsPresenter(Context context) {
if (settingsPresenter == null) {
settingsPresenter = new SettingsPresenter(provideLocalRepository(), provideFileRepository(),
provideRecordingTasksQueue(), provideLoadingTasksQueue(), providePrefs(),
provideSettingsMapper(), provideAppRecorder());
settingsPresenter = new SettingsPresenter(provideLocalRepository(context), provideFileRepository(context),
provideRecordingTasksQueue(), provideLoadingTasksQueue(), providePrefs(context),
provideSettingsMapper(context), provideAppRecorder(context));
}
return settingsPresenter;
}

public TrashContract.UserActionsListener provideTrashPresenter() {
public TrashContract.UserActionsListener provideTrashPresenter(Context context) {
if (trashPresenter == null) {
trashPresenter = new TrashPresenter(provideLoadingTasksQueue(), provideRecordingTasksQueue(),
provideFileRepository(), provideLocalRepository());
provideFileRepository(context), provideLocalRepository(context));
}
return trashPresenter;
}

public SetupContract.UserActionsListener provideSetupPresenter() {
public SetupContract.UserActionsListener provideSetupPresenter(Context context) {
if (setupPresenter == null) {
setupPresenter = new SetupPresenter(providePrefs());
setupPresenter = new SetupPresenter(providePrefs(context));
}
return setupPresenter;
}

public MoveRecordsViewModel provideMoveRecordsViewModel() {
public MoveRecordsViewModel provideMoveRecordsViewModel(Context context) {
if (moveRecordsViewModel == null) {
moveRecordsViewModel = new MoveRecordsViewModel(
provideLoadingTasksQueue(),
provideLocalRepository(),
provideFileRepository(),
provideSettingsMapper(),
provideLocalRepository(context),
provideFileRepository(context),
provideSettingsMapper(context),
provideAudioPlayer(),
provideAppRecorder(),
providePrefs()
provideAppRecorder(context),
providePrefs(context)
);
}
return moveRecordsViewModel;
}

public LostRecordsContract.UserActionsListener provideLostRecordsPresenter() {
public LostRecordsContract.UserActionsListener provideLostRecordsPresenter(Context context) {
if (lostRecordsPresenter == null) {
lostRecordsPresenter = new LostRecordsPresenter(provideLoadingTasksQueue(), provideRecordingTasksQueue(),
provideLocalRepository(), providePrefs());
provideLocalRepository(context), providePrefs(context));
}
return lostRecordsPresenter;
}

public FileBrowserContract.UserActionsListener provideFileBrowserPresenter() {
public FileBrowserContract.UserActionsListener provideFileBrowserPresenter(Context context) {
if (fileBrowserPresenter == null) {
fileBrowserPresenter = new FileBrowserPresenter(providePrefs(), provideAppRecorder(), provideImportTasksQueue(),
fileBrowserPresenter = new FileBrowserPresenter(providePrefs(context), provideAppRecorder(context), provideImportTasksQueue(),
provideLoadingTasksQueue(), provideRecordingTasksQueue(),
provideLocalRepository(), provideFileRepository());
provideLocalRepository(context), provideFileRepository(context));
}
return fileBrowserPresenter;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ class DecodeService : Service() {

override fun onCreate() {
super.onCreate()
colorMap = ARApplication.injector.provideColorMap()
processingTasks = ARApplication.injector.provideProcessingTasksQueue()
recordingsTasks = ARApplication.injector.provideRecordingTasksQueue()
localRepository = ARApplication.injector.provideLocalRepository()
waveformVisualization = ARApplication.injector.provideAudioWaveformVisualization()
colorMap = ARApplication.injector!!.provideColorMap(applicationContext)
processingTasks = ARApplication.injector!!.provideProcessingTasksQueue()
recordingsTasks = ARApplication.injector!!.provideRecordingTasksQueue()
localRepository = ARApplication.injector!!.provideLocalRepository(applicationContext)
waveformVisualization = ARApplication.injector!!.provideAudioWaveformVisualization()
}

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Expand Down Expand Up @@ -234,10 +234,11 @@ class DecodeService : Service() {
stopSelf()
}

@SuppressLint("WrongConstant")
private fun getCancelDecodePendingIntent(context: Context): PendingIntent {
val intent = Intent(context, StopDecodeReceiver::class.java)
intent.action = ACTION_CANCEL_DECODE
return PendingIntent.getBroadcast(context, 15, intent, 0)
return PendingIntent.getBroadcast(context, 15, intent, AppConstants.PENDING_INTENT_FLAGS)
}

@RequiresApi(Build.VERSION_CODES.O)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public IBinder onBind(Intent intent) {
public void onCreate() {
super.onCreate();

colorMap = ARApplication.getInjector().provideColorMap();
colorMap = ARApplication.getInjector().provideColorMap(getApplicationContext());
copyTasks = ARApplication.getInjector().provideCopyTasksQueue();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public void onCreate() {
super.onCreate();

audioPlayer = ARApplication.getInjector().provideAudioPlayer();
colorMap = ARApplication.getInjector().provideColorMap();
colorMap = ARApplication.getInjector().provideColorMap(getApplicationContext());

if (playerCallback == null) {
playerCallback = new PlayerContractNew.PlayerCallback() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,15 +102,16 @@ public IBinder onBind(Intent intent) {
@Override
public void onCreate() {
super.onCreate();
appRecorder = ARApplication.getInjector().provideAppRecorder();
getApplicationContext();
appRecorder = ARApplication.getInjector().provideAppRecorder(getApplicationContext());
audioPlayer = ARApplication.getInjector().provideAudioPlayer();
recordingsTasks = ARApplication.getInjector().provideRecordingTasksQueue();
localRepository = ARApplication.getInjector().provideLocalRepository();
prefs = ARApplication.getInjector().providePrefs();
recorder = ARApplication.getInjector().provideAudioRecorder();
localRepository = ARApplication.getInjector().provideLocalRepository(getApplicationContext());
prefs = ARApplication.getInjector().providePrefs(getApplicationContext());
recorder = ARApplication.getInjector().provideAudioRecorder(getApplicationContext());

colorMap = ARApplication.getInjector().provideColorMap();
fileRepository = ARApplication.getInjector().provideFileRepository();
colorMap = ARApplication.getInjector().provideColorMap(getApplicationContext());
fileRepository = ARApplication.getInjector().provideFileRepository(getApplicationContext());

appRecorderCallback = new AppRecorderCallback() {
boolean checkHasSpace = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ class TransparentRecordingActivity : Activity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
prefs = ARApplication.injector.providePrefs()
fileRepository = ARApplication.injector.provideFileRepository()
prefs = ARApplication.injector!!.providePrefs(applicationContext)
fileRepository = ARApplication.injector!!.provideFileRepository(applicationContext)

if (checkRecordPermission2()) {
if (checkStoragePermission2()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public static Intent getStartIntent(Context context) {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTheme(ARApplication.getInjector().provideColorMap().getAppThemeResource());
setTheme(ARApplication.getInjector().provideColorMap(getApplicationContext()).getAppThemeResource());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_file_browser);

Expand All @@ -97,7 +97,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {

RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
adapter = new FileBrowserAdapter(getApplicationContext(), ARApplication.getInjector().provideSettingsMapper());
adapter = new FileBrowserAdapter(getApplicationContext(), ARApplication.getInjector().provideSettingsMapper(getApplicationContext()));
adapter.setOnItemClickListener(new FileBrowserAdapter.OnItemClickListener() {
@Override
public void onItemClick(RecordInfo record) {
Expand Down Expand Up @@ -132,7 +132,7 @@ public void onRemoveItemClick(final RecordInfo record) {
}
});
recyclerView.setAdapter(adapter);
presenter = ARApplication.getInjector().provideFileBrowserPresenter();
presenter = ARApplication.getInjector().provideFileBrowserPresenter(getApplicationContext());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public static Intent getStartIntent(Context context, RecordInfo info) {

@Override
protected void onCreate(Bundle savedInstanceState) {
ColorMap colorMap = ARApplication.getInjector().provideColorMap();
ColorMap colorMap = ARApplication.getInjector().provideColorMap(getApplicationContext());
setTheme(colorMap.getAppThemeResource());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);
Expand All @@ -65,7 +65,7 @@ protected void onCreate(Bundle savedInstanceState) {
txtName.setText(info.getName());
txtFormat.setText(info.getFormat());
txtDuration.setText(TimeUtils.formatTimeIntervalHourMinSec2(info.getDuration()/1000));
txtSize.setText(ARApplication.getInjector().provideSettingsMapper().formatSize(info.getSize()));
txtSize.setText(ARApplication.getInjector().provideSettingsMapper(getApplicationContext()).formatSize(info.getSize()));
txtLocation.setText(info.getLocation());
txtCreated.setText(TimeUtils.formatDateTimeLocale(info.getCreated()));
txtSampleRate.setText(getString(R.string.value_hz, info.getSampleRate()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public static Intent getStartIntent(Context context, ArrayList<RecordItem> data)

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTheme(ARApplication.getInjector().provideColorMap().getAppThemeResource());
setTheme(ARApplication.getInjector().provideColorMap(getApplicationContext()).getAppThemeResource());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lost_records);

Expand Down Expand Up @@ -108,7 +108,7 @@ public void onRemoveItemClick(final RecordItem record) {
}
}

presenter = ARApplication.getInjector().provideLostRecordsPresenter();
presenter = ARApplication.getInjector().provideLostRecordsPresenter(getApplicationContext());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public static Intent getStartIntent(Context context) {

@Override
protected void onCreate(Bundle savedInstanceState) {
colorMap = ARApplication.getInjector().provideColorMap();
colorMap = ARApplication.getInjector().provideColorMap(getApplicationContext());
setTheme(colorMap.getAppThemeResource());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Expand Down Expand Up @@ -222,8 +222,8 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
});

presenter = ARApplication.getInjector().provideMainPresenter();
fileRepository = ARApplication.getInjector().provideFileRepository();
presenter = ARApplication.getInjector().provideMainPresenter(getApplicationContext());
fileRepository = ARApplication.getInjector().provideFileRepository(getApplicationContext());

waveformView.setOnSeekListener(new WaveformViewNew.OnSeekListener() {
@Override
Expand Down Expand Up @@ -279,7 +279,7 @@ protected void onStart() {
// presenter.checkPublicStorageRecords();
}
presenter.checkFirstRun();
presenter.setAudioRecorder(ARApplication.getInjector().provideAudioRecorder());
presenter.setAudioRecorder(ARApplication.getInjector().provideAudioRecorder(getApplicationContext()));
presenter.updateRecordingDir(getApplicationContext());
presenter.loadActiveRecord();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,14 @@ class MoveRecordsActivity : Activity() {
}

override fun onCreate(savedInstanceState: Bundle?) {
val colorMap = ARApplication.injector.provideColorMap()
val colorMap = ARApplication.injector!!.provideColorMap(applicationContext)
setTheme(colorMap.appThemeResource)
super.onCreate(savedInstanceState)
binding = ActivityMoveRecordsBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)

viewModel = ARApplication.injector.provideMoveRecordsViewModel()
viewModel = ARApplication.injector!!.provideMoveRecordsViewModel(applicationContext)

binding.recyclerView.layoutManager = LinearLayoutManager(applicationContext)
binding.recyclerView.adapter = adapter
Expand Down Expand Up @@ -381,7 +381,7 @@ class MoveRecordsActivity : Activity() {
}

private fun clear() {
ARApplication.injector.releaseMoveRecordsViewModel()
ARApplication.injector!!.releaseMoveRecordsViewModel()
scope.cancel()
}

Expand Down
Loading

0 comments on commit e08f63e

Please sign in to comment.