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
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.viewpager2.widget.ViewPager2
import com.nextcloud.android.common.ui.theme.utils.ColorRole
import com.nextcloud.client.account.UserAccountManager
import com.nextcloud.client.appinfo.AppInfo
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.preferences.AppPreferences
import com.nextcloud.client.utils.IntentUtil
import com.nextcloud.utils.SnackbarUtil
import com.nextcloud.utils.mdm.MDMConfig
Expand All @@ -46,14 +44,6 @@ class FirstRunActivity :
BaseActivity(),
Injectable {

@JvmField
@Inject
var userAccountManager: UserAccountManager? = null

@JvmField
@Inject
var preferences: AppPreferences? = null

@JvmField
@Inject
var appInfo: AppInfo? = null
Expand Down Expand Up @@ -103,13 +93,13 @@ class FirstRunActivity :
if (RESULT_OK == result.resultCode) {
val data = result.data
val accountName = data?.getStringExtra(AccountManager.KEY_ACCOUNT_NAME)
val account = userAccountManager?.getAccountByName(accountName)
val account = userAccountManager.getAccountByName(accountName)
if (account == null) {
SnackbarUtil.show(this, R.string.account_creation_failed)
return@registerForActivityResult
}

userAccountManager?.setCurrentOwnCloudAccount(account.name)
userAccountManager.setCurrentOwnCloudAccount(account.name)

val i = Intent(this, FileDisplayActivity::class.java)
i.action = FileDisplayActivity.RESTART
Expand Down Expand Up @@ -169,7 +159,7 @@ class FirstRunActivity :
// Sometimes, accounts are not deleted when you uninstall the application so we'll do it now
private fun deleteAccountAtFirstLaunch() {
if (onboarding?.isFirstRun == true) {
userAccountManager?.removeAllAccounts()
userAccountManager.removeAllAccounts()
}
}

Expand Down Expand Up @@ -235,7 +225,7 @@ class FirstRunActivity :
}

private fun onFinish() {
preferences?.lastSeenVersionCode = BuildConfig.VERSION_CODE
preferences.lastSeenVersionCode = BuildConfig.VERSION_CODE
}

override fun onStop() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,10 @@

/**
* This interface provides single point of entry for access to all application
* preferences and allows clients to subscribe for specific configuration changes.
* preferences.
*/
public interface AppPreferences {

/**
* Preferences listener. Callbacks should be invoked on main thread.
* Maintainers should extend this interface with callbacks for specific events.
*/
interface Listener {
default void onDarkThemeModeChanged(DarkMode mode) {
/* default empty implementation */
};
}

/**
* Registers preferences listener. It no-ops if listener
* is already registered.
*
* @param listener application preferences listener
*/
void addListener(@Nullable Listener listener);

/**
* Unregister listener. It no-ops if listener is not registered.
*
* @param listener application preferences listener
*/
void removeListener(@Nullable Listener listener);

void setKeysReInitEnabled();
boolean isKeysReInitEnabled();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@

import java.lang.reflect.Type;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -126,48 +124,11 @@ public final class AppPreferencesImpl implements AppPreferences {
private final SharedPreferences preferences;
private final UserAccountManager userAccountManager;
private final ArbitraryDataProvider arbitraryDataProvider;
private final ListenerRegistry listeners;

private static final int AUTO_UPLOAD_ON_START_DEBOUNCE_IN_MINUTES = 10;
private static final long AUTO_UPLOAD_ON_START_DEBOUNCE_MS =
TimeUnit.MINUTES.toMillis(AUTO_UPLOAD_ON_START_DEBOUNCE_IN_MINUTES);

/**
* Adapter delegating raw {@link SharedPreferences.OnSharedPreferenceChangeListener} calls with key-value pairs to
* respective {@link com.nextcloud.client.preferences.AppPreferences.Listener} method.
*/
static class ListenerRegistry implements SharedPreferences.OnSharedPreferenceChangeListener {

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theme listener don't need this.

private final AppPreferences preferences;
private final Set<Listener> listeners;

ListenerRegistry(AppPreferences preferences) {
this.preferences = preferences;
this.listeners = new CopyOnWriteArraySet<>();
}

void add(@Nullable final Listener listener) {
if (listener != null) {
listeners.add(listener);
}
}

void remove(@Nullable final Listener listener) {
if (listener != null) {
listeners.remove(listener);
}
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (PREF__DARK_THEME.equals(key)) {
DarkMode mode = preferences.getDarkThemeMode();
for (Listener l : listeners) {
l.onDarkThemeModeChanged(mode);
}
}
}
}

/**
* This is a temporary workaround to access app preferences in places that cannot use dependency injection yet. Use
* injected component via {@link AppPreferences} interface.
Expand All @@ -193,18 +154,6 @@ public static AppPreferences fromContext(Context context) {
this.preferences = preferences;
this.userAccountManager = userAccountManager;
this.arbitraryDataProvider = arbitraryDataProvider;
this.listeners = new ListenerRegistry(this);
this.preferences.registerOnSharedPreferenceChangeListener(listeners);
}

@Override
public void addListener(@Nullable AppPreferences.Listener listener) {
this.listeners.add(listener);
}

@Override
public void removeListener(@Nullable AppPreferences.Listener listener) {
this.listeners.remove(listener);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class FilesServiceApiImpl(private val accountManager: UserAccountManager, privat
if (!result.isSuccess) return null

val remoteFile = result.getData()[0] as RemoteFile
val ocFile = activity.storageManager.saveFileWithParent(
val ocFile = activity.getStorageManager().saveFileWithParent(
FileStorageUtils.fillOCFile(remoteFile),
context
)
Expand All @@ -77,7 +77,7 @@ class FilesServiceApiImpl(private val accountManager: UserAccountManager, privat
System.currentTimeMillis(),
false,
true,
activity.storageManager,
activity.getStorageManager(),
activity.user.orElseThrow { RuntimeException() },
context
).execute(client)
Expand Down
190 changes: 0 additions & 190 deletions app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java

This file was deleted.

Loading
Loading